frontend:pm2
PM2
Production process manager for Node.js apps with a built-in load balancer. http://pm2.io/
Usage
Start 2 instances of application in cluster mode:
pm2 start -i 2 --name [name] bin/www
Set pm2 start on boot:
pm2 startup
Save pm2 current process list:
pm2 save
Remove init script:
pm2 unstartup [systemv|systemd]
Manually Restore Processes:
pm2 resurrect
gracefulReload
stop
拦截 SIGINT 信号,并关闭所有资源,然后退出。
process.on('SIGINT', function () { process.exit(0) })
start
配置 PM2 启动参数,添加 –wait-ready
,然后在应用成功监听端口,添加
process.send('ready')
信号处理流程
当一个进程被停止或者重启时,发送信号的顺序如下:
- SIGINT 信号发送至进程,可在此拦截并退出进程;
- 如果 1.6s 后进程还未退出,则发送 SIGKILL 信号强制其退出。
Configuration
A PM2 configuration sample:
- pm2.json
{ "name": "<%= appname %>", "script": "./server/index.js", "instances": 2, "exec_mode" : "cluster", "wait-ready": true, "cwd": "." }
Run pm2 start pm2.json
frontend/pm2.txt · 最后更改: 2023/12/03 10:24 由 127.0.0.1