备忘录
# 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 yet.
# 列表
$ 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
# 日志
$ pm2 logs [--raw] # Display all processes logs in streaming
$ pm2 flush # Empty all log file
$ 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 gracefulReload all # Send exit message then reload (for networked apps)
$ pm2 stop 0 # Stop specific process id
$ pm2 restart 0 # Restart specific process id
$ pm2 delete 0 # Will remove process from pm2 list
$ pm2 delete all # Will remove all processes from pm2 list
# 杂项
$ pm2 reset <process> # 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
启动项相关
--name "项目名称"
--merge-logs # 将多个进程下的logs合并到一个文件中
-o $OUT_LOG # 访问日志输出文件
-e $ERROR_LOG # 错误日志输出文件
-i 4 # 多进程
--wait-ready # 等待项目中的资源和端口准备就绪再启动 pm2
wait-ready 使用实例
nodejs启动实例
const http = require('http');
const app = http.createServer(function(req, res) {
res.writeHead(200);
res.end('hey');
});
const listener = app.listen(0, function() {
console.log('Listening on port ' + listener.address().port);
// 通知 pm2 应用程序已准备就绪,可以启动了
if (process.send) {
process.send('ready');
}
});
pm2启动项
pm2 start app.js --wait-ready