PM2是守护进程管理工具,利用它可以简化很多应用方面的管理工作,节约人力投入,比如:性能监控、自动重启、负载均衡等方面。PS:类似的工具还有supervisor
安装
基于npm
进行安装,只需要执行下面命令即可:
npm install pm2@latest -g
使用
配置文件
pm2的配置文件支持js
、yml
、json
三种文件类型,下面以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
- 更新PM2pm2 startup
- 创建开机启动脚本文件pm2 unstartup
- 禁止开机启动