PM2是守护进程管理工具,利用它可以简化很多应用方面的管理工作,节约人力投入,比如:性能监控、自动重启、负载均衡等方面。PS:类似的工具还有supervisor

安装

基于npm进行安装,只需要执行下面命令即可:

npm install pm2@latest -g

使用

配置文件

pm2的配置文件支持jsymljson三种文件类型,下面以json类型为示例,进行说明

[{
    "name": "pm2-demo",                 # 进程名
    "cwd": "/data/www",                 # 执行目录
    "script": "/usr/local/bin/node",    # 命令目录
    "args": "index.js",                 # 执行参数
    "exec_mode": "fork",                # 应用模式,“cluster”或“fork”,默认是fork
    "watch": ["app/Jobs"],              # 要监听的目录,false或目录数组,目录文件有改动时自动重启
    "ignore_watch": ["app/Logs"],       # 忽略监听的目录,支持正则
    "min_uptime": "60s",                # 启动时最小时间
    "max_memory_restart": "150M",       # 超过指定内存时会自动重启
    "cron_restart": "1 0 1 * *",        # 定时重启
    "max_restarts": 30,                 # 最大重启次数
    "error_file": "pm2_demo_error.log", # 错误日志
    "out_file": "pm2_demo_out.log"      # 输出日志
}]

常用命令

  • pm2 start pm2.json - 启动文件里的所有进程
  • pm2 restart pm2.json - 重新启动文件里的所有进程
  • pm2 reload pm2.json - 平滑重新启动文件里的所有进程(restart会杀掉进程)
  • pm2 scale xx +3 - 增加3个xx进程
  • pm2 scale xx 2 - 增加或减少xx进程到2个
  • pm2 stop xx - 停止xx进程
  • pm2 delete xx - 删除xx进程
  • pm2 list - 显示所有进程状态
  • pm2 show xx - 显示xx进程所有信息
  • pm2 monit - 监控进程整体状态
  • pm2 update - 更新PM2
  • pm2 startup - 创建开机启动脚本文件
  • pm2 unstartup - 禁止开机启动

界面

进程界面

TIM截图20200319112547.png

进程详情

TIM截图20200319112656.png

监程监控

TIM截图20200319114615.png

参考资料