PM2 使用文档
PM2 是一个功能强大的 Node.js 应用进程管理器,用于生产环境中守护和管理应用进程。
常用命令速查表
| 功能 | 命令 | 
|---|---|
| 启动应用 | pm2 start app.js | 
| 以集群模式启动 | pm2 start app.js -i max | 
| 查看进程列表 | pm2 list | 
| 查看日志 | pm2 logs | 
| 停止应用 | pm2 stop app_name | 
| 删除应用 | pm2 delete app_name | 
| 保存当前进程 | pm2 save | 
| 开机自启 | pm2 startup | 
| 监控应用 | pm2 monit | 
安装 PM2
npm install pm2@latest -g基本命令
启动应用
pm2 start app.js或指定应用名称:
pm2 start app.js --name my-app查看进程列表
pm2 list查看日志
pm2 logs重启 / 停止 / 删除进程
pm2 restart my-app
pm2 stop my-app
pm2 delete my-app进程信息与监控
查看详细信息
pm2 show my-app实时监控 CPU 和内存
pm2 monit集群模式(Cluster Mode)
PM2 可让应用以多进程模式运行,提高性能和可用性。
pm2 start app.js -i max-i max 表示根据 CPU 核心数自动启动相同数量的进程。日志管理
默认日志路径:
~/.pm2/logs/查看指定应用日志:
pm2 logs my-app清理所有日志:
pm2 flush自动重启与开机自启
应用崩溃自动重启
PM2 会自动检测并重启崩溃的进程,无需额外配置。
开机自启
pm2 startup执行上方命令后,按提示执行生成的命令。
保存当前进程列表:
pm2 save使用配置文件 (ecosystem.config.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"
      }
    }
  ]
}启动所有定义的应用:
pm2 start ecosystem.config.js部署与远程管理
PM2 支持自动化部署:
pm2 deploy ecosystem.config.js production setup
pm2 deploy ecosystem.config.js production示例配置:
module.exports = {
  apps: [{ name: "api", script: "app.js" }],
  deploy: {
    production: {
      user: "ubuntu",
      host: "example.com",
      ref: "origin/main",
      repo: "git@github.com:user/repo.git",
      path: "/var/www/project",
      'post-deploy': "npm install && pm2 reload ecosystem.config.js --env production"
    }
  }
}Docker 集成
在 Docker 中运行 PM2:
FROM node:18
RUN npm install pm2 -g
WORKDIR /app
COPY . .
CMD ["pm2-runtime", "start", "ecosystem.config.js"]官方文档
建议:
使用ecosystem.config.js管理项目,结合pm2 save和pm2 startup,即可实现服务器断电重启后自动恢复进程。