pm2基础

  • 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

参考:

pm2.io

github pm2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注