Node.js 使用 PM2 管理进程
执行 Node.js 的程序,需要使用命令行进行调用:
1 | node js-module-name |
当 Ctrl + C 退出之后,或者关闭了终端之后,Node.js 的进程也随之被退出了。如果 Node.js 的程序中途出现了异常,也会退出进程。如果部署在服务器上面的 Node.js 应该需要以守护进程的方式进行启动的话,则需要借助一些工具才能完成这种操作。
PM2 就是一款 Node.js 应用的极佳的进程管理器。官方网址是: https://pm2.keymetrics.io/。 安装方法如下:
1 | npm install -g pm2 |
安装完毕之后,需要查看帮助,请输入:
1 | pm2 -h |
启动一个 Node.js 进程并守护,使用以下命令:
1 | pm2 start ex21.js |
这时进程启动并进入后台管理,并输出下面进程信息。加上 --watch
参数在后面,意味着当应用程序发生异常时,pm2会帮你重启服务。
1 | [PM2] Starting G:\mystudy\node\1\ex21.js in fork_mode (1 instance) |
即使命令终端窗口关闭了,进程还是会在后台继续运行。以上信息中,可以看出,进程 ID 为:15332,这个进程在进程列表中的 ID 为 0。
结束一个进程,可以使用下面命令(以上面的进程为例子,命令中的 id 为列表中的 ID):
1 | pm2 stop 0 |
如果要把列表中所有的进程都停止,则使用:
1 | pm2 stop all |
查看完成进程列表,使用命令:
1 | pm2 list |
1 | ┌─────┬─────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐ |
重启进程,则使用命令:
1 | pm2 restart 0 |
重启所有进程,则使用命令:
1 | pm2 restart all |
将进程从管理列表中删除,使用命令:
1 | pm2 delete 0 |
将所有进程从管理列表中删除,使用命令:
1 | pm2 delete all |