- pm2安装
npm install pm2@latest -g
- pm2升级
//保存现在的进程 pm2 save //安装最新版本 npm install pm2 -g //升级 pm2 update
- 启动项目
利用入口文件app.js,开启4个进程
pm2 start app.js -i 4
启动正式环境
pm2 start process.json --env production
状态设置,设置等待时间长度,但是还没弄清楚具体含义
pm2 start app --wait-ready --listen-timeout 1600
pm2 start app.js --kill-timeout 3000
80端口启动项目
NODE_PORT=80
pm2 start app.js -f
//-f 强制重启
- 查看进程状态
pm2 list
查看id为0的进程的详细状况
$ pm2 describe <id|app_name>
pm2 describe 0 pm2 show <应用名>
- 进程管理
$ pm2 stop <app_name|id|'all'|json_conf> $ pm2 restart <app_name|id|'all'|json_conf> $ pm2 delete <app_name|id|'all'|json_conf>
pm2 stop all # 结束所有进程 pm2 restart all # 重启所有进程 pm2 reload all # 0s重启 (适用于网络app) pm2 stop 0 # 停止某个id进程 pm2 restart 0 # 重启某个进程id pm2 delete 0 # 删除某个id进程 pm2 delete all # 删除所有进程
- 输出日志
pm2 logs
检测 log 输出
$ pm2 monit
- 出错时自动重启
参考:Startup Hook
# Generate Startup Script $ pm2 startup 运行后会在命令行中返回说明文字,复制粘贴相应部分(sudo su -c "env PATH=$PATH:/home/unitech/.nvm/versions/node/v4.3/bin pm2 startup <distribution> -u <user> --hp <home-path>)到 cmd 中
# Freeze your process list across server restart $ pm2 save # Remove Startup Script $ pm2 unstartup
windows 下,还可以使用 pm2-windows-service 或者 pm2-windows-startup.
- status errored 时,怎么重启该进程,直接重启会报错:“该 pid 被占用”
//先关闭进程,再启动进程
pm2 stop processId
pm2 reatart processId
参考: