用户工具

站点工具


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')

信号处理流程

当一个进程被停止或者重启时,发送信号的顺序如下:

  1. SIGINT 信号发送至进程,可在此拦截并退出进程;
  2. 如果 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