对于 Node.js 应用程序,PM2 包括一个自动负载平衡器,它将在每个衍生进程之间共享所有 HTTP[s]/Websocket/TCP/UDP 连接。使用如下命令进行集群模式启动,其中 max 的值为当前系统的 CPU核心数减1 ,当然我们也可以改成任意数字,表示集群的实例数:
$ pm2 start app.js -i max
零离线重载
热重载允许在不停机的情况下更新应用程序。使用如下命令:
$ pm2 reload all
注:上面的all表示所有的服务进程,除此之外还可以使指定id, 或应用名称
开机启动
$ pm2 startup
冻结进程列表并自动复位:
$ pm2 save
PM2更新
简单直白的方法:
$ npm install pm2@latest -g
PM2常用命令示例
# Fork mode pm2 start app.js --name my-api # Name process # Cluster mode pm2 start app.js -i 0# Will start maximum processes with LB depending on available CPUs pm2 start app.js -i max # Same as above, but deprecated. pm2 scale app +3# Scales `app` up by 3 workers pm2 scale app 2# Scales `app` up or down to 2 workers total # Listing pm2 list # Display all processes status pm2 jlist # Print process list in raw JSON pm2 prettylist # Print process list in beautified JSON pm2 describe 0# Display all informations about a specific process pm2 monit # Monitor all processes # Logs pm2 logs [--raw]# Display all processes logs in streaming pm2 flush # Empty all log files pm2 reloadLogs # Reload all logs # Actions pm2 stop all # Stop all processes pm2 restart all # Restart all processes pm2 reload all # Will 0s downtime reload (for NETWORKED apps) pm2 stop 0# Stop specific process id pm2 restart 0# Restart specific process id pm2 delete0# Will remove process from pm2 list pm2 delete all # Will remove all processes from pm2 list # Misc pm2 reset # Reset meta data (restarted time...) pm2 updatePM2 # Update in memory pm2 pm2 ping # Ensure pm2 daemon has been launched pm2 sendSignal SIGUSR2 my-app # Send system signal to script pm2 start app.js --no-daemon pm2 start app.js --no-vizion pm2 start app.js --no-autorestart