Skip to content

PM2 常用命令

August 10, 2024 by ccforeverd

准备工作

  • npm i -g pm2 安装 PM2
  • pm2 startup 自动启动 PM2
    • pm2 save 保存当前应用列表, 用于 PM2 重启后自动加载应用列表
    • pm2 resurrect 重新加载保存的应用列表
  • npm install pm2@latest -g 更新 PM2 版本
  • pm2 update 保存进程, 杀死并重启进程, 一般用于更新 PM2 版本

启动应用

  • pm2 start app.js 启动 app.js
  • pm2 start app.json 启动 app.json, 多用于 monorepo 项目
    app.json
    {
      "apps": [
        {
          "name": "app",
          "script": "app.js"
        }
      ]
    }
  • pm2 start app.js --name="app" 启动 app.js 并命名为 app
  • pm2 start app.js --watch 启动 app.js 并监听文件变化, 当文件变化时, 会自动重启
  • pm2 start app.js --watch --ignore-watch="node_modules" 启动 app.js 并监听文件变化, 但忽略 node_modules 文件夹
  • pm2 start start.sh 启动 start.sh 脚本
  • pm2 ecosystem 生成 ecosystem.config.js 配置文件, 用于管理多个应用
    ecosystem.config.js
    module.exports = {
      apps : [{
        name: "app",
        script: "./app.js",
        env: {
          NODE_ENV: "development",
        },
        env_production: {
          NODE_ENV: "production",
        }
      }, {
        name: 'worker',
        script: 'worker.js'
      }]
    }
  • pm2 start ecosystem.config.js 启动 ecosystem.config.js 配置文件中的所有应用

查看应用

  • pm2 list 查看所有启动的应用列表
  • pm2 monit 显示每个应用程序的CPU和内存占用情况
  • pm2 show [app-id/app-name] 显示指定应用程序的所有信息

查看日志

  • pm2 log 显示应用程序的日志信息
  • pm2 log --lines 1000 显示最后 1000 行日志信息
  • pm2 log [app-id/app-name] 显示指定应用程序的日志信息
  • pm2 flush 清空所有日志文件

重启应用

  • pm2 stop all 停止所有应用程序
  • pm2 stop [app-id/app-name] 停止指定应用程序
  • pm2 restart all 重启所有应用程序
  • pm2 restart [app-id/app-name] 重启指定应用程序
  • pm2 delete all 关闭并删除所有应用程序
  • pm2 delete [app-id/app-name] 删除指定的应用程序
  • pm2 reset [app-id/app-name] 重置重启数量