主题
PM2
PM2 是一个流行的进程管理工具,特别用于 Node.js 应用的生产环境部署。它提供了进程管理、日志管理、集群模式等功能。
安装 PM2
首先需要安装 PM2,使用 npm 进行全局安装:
bash
npm install pm2 -g
启动应用
启动一个 Node.js 应用:
bash
pm2 start app.js
可以传入一些额外的参数来配置启动行为:
bash
pm2 start app.js --name "my-app" --watch
--name
指定应用的名称--watch
监听文件变化,自动重启应用
启动多个实例(集群模式)
可以使用 -i
来启动应用的多个实例(开启集群模式),-i 0
会自动根据 CPU 核数来启动实例:
bash
pm2 start app.js -i 0
查看进程状态
查看所有由 PM2 管理的进程状态:
bash
pm2 list
或者:
bash
pm2 status
停止、重启应用
停止或重启特定的应用:
bash
pm2 stop my-app
pm2 restart my-app
停止所有应用:
bash
pm2 stop all
删除应用
删除一个应用的进程:
bash
pm2 delete my-app
删除所有应用:
bash
pm2 delete all
日志管理
查看应用的日志输出:
bash
pm2 logs
查看某个应用的日志:
bash
pm2 logs my-app
保存进程列表
保存当前进程列表,以便在服务器重启时自动恢复:
bash
pm2 save
自动启动 PM2(系统重启后)
可以通过 PM2 的启动脚本来配置服务器重启后自动启动应用:
bash
pm2 startup
该命令会输出一条命令,执行它来配置自动启动。
监控应用
PM2 提供了实时的监控面板来查看应用的资源占用、运行状态等:
bash
pm2 monit
配置文件(ecosystem.config.js
)
使用 PM2 配置文件,可以方便地管理多个应用的配置。一个典型的配置文件如下:
js
module.exports = {
apps: [
{
name: 'my-app',
script: './app.js',
instances: 'max',
exec_mode: 'cluster',
watch: true,
env: {
NODE_ENV: 'development',
},
env_production: {
NODE_ENV: 'production',
},
},
],
}
启动配置文件中的应用:
bash
pm2 start ecosystem.config.js
监控和性能分析
PM2 提供了内置的 pm2 monit
命令来进行进程监控,可以实时查看进程的 CPU 和内存占用情况。
还可以使用 PM2 提供的 pm2-gui
来通过图形化界面进行管理:
bash
pm2-gui
其他常用命令
pm2 info <app_name>
查看某个应用的详细信息pm2 restart <app_name> --only <specific_instance>
重启某个特定实例pm2 update
更新 PM2
配置环境变量
你可以在启动时指定环境变量:
bash
pm2 start app.js --env NODE_ENV=production
或者在配置文件 ecosystem.config.js
中设置不同的环境配置。
常见问题解决
PM2 守护进程启动失败:
- 确保已安装
pm2
和node.js
。 - 使用
pm2 startup
设置系统自启动。
- 确保已安装
应用停止或崩溃:
- 使用
pm2 logs
查看日志,调试错误。 - 确保应用的代码没有未处理的异常。
- 使用