pm2是一个带有负载均衡功能的应用进程管理器,可以用它来管理你的node进程,并查看node进程的状态,当然也支持性能监控,进程守护等功能。他会确定重启开机之后,能够保证程序也能运行起来。目前还没有操作这部分,没有过多介绍
启动
pm2 start app.j
添加进程/应用监视watch (监视)
pm2 start app2.js --watch
上面图片中watching栏,disabled变为enabled
列出所有进程
pm2 list
结束进程
pm2 stop app
结束所有进程
pm2 stop all
删除进程
pm2 delete app
删除所有进程
pm2 delete all
查看某个进程情况
pm2 describe app
查看所有进程资源消耗情况
pm2 monit
重启进程
pm2 restart app
重启所有进程
pm2 restart all
pm2 restart 会杀死所有进程 从而reload实现0秒的停机时间重新加载,要重新加载使用如下命令
pm2 reload <app_name>
pm2 reload process.json
查看进程日志
pm2 logs app
查看所有进程日志
pm2 logs
保存脚本
pm2 save
创建开机启动脚本
pm2 startup systemd
更新pm2
确保正确保存了所有进程:
pm2 save
然后从NPM安装最新的PM2版本:
npm install pm2 -g
最后更新内存中的PM2进程:
pm2 update
pm2配置文件
文件名 test.json 可以通过 pm2 start test.json 快速启动 app中每一项就是一个应用
{
"apps": [
{
"name": "coin1_6",
"cwd": "./",
"script": "coin1_6.js",
"log_date_format": "YYYY-MM-DD HH:mm Z",
"error_file": "/var/log/node-app/node-app.stderr.log",
"out_file": "log/node-app.stdout.log",
"pid_file": "pids/node-geo-api.pid",
"instances": "8",
"min_uptime": "60s",
"max_restarts": 10,
"max_memory_restart": "100M",
"cron_restart": "1 0 * * *",
"watch": true,
"merge_logs": true,
"exec_interpreter": "node",
"exec_mode": "cluster",
"autorestart": false,
"vizion": false
}
]
}
本人使用的时候:
1.max_memory_restart在cluster状态下小于平均的mem,服务器的cpu会占的很高,
......
详细可查看官网文档:http://pm2.keymetrics.io/docs/usage/quick-start/