我们使用NodeJS或Express等框架编写服务端程序时,难免出现没做好错误处理或是由于其他原因,导致进程意外终止的情况。pm2
是NodeJS的一个服务进程管理工具,它能在进程崩溃后自动重启,此外还提供了一个监控界面,保证服务程序的可用性。
pm2
一般对于我们本地开发电脑是用不上的,因此通常是在服务器上安装,此时建议全局安装到系统中,以便管理多个进程。
npm install -g pm2
这里我们有一个Express编写的HTTP服务,不使用pm2
时启动命令可能为node ./index.js
。如果使用pm2
管理服务,则启动命令如下:
pm2 start ./index.js
执行后,我们会看到类似如下的输出:
pm2
可以管理多个服务,被管理的服务会显示在列表中。
如果在Docker镜像中使用pm2
,注意我们需要使用--no-daemon
参数保留前台进程,否则容器会直接结束运行。
pm2 start ./index.js --no-daemon
pm2
提供了一些命令来管理其维护的进程列表,这里我们简单介绍一下。
启动app.js
服务进程:
pm2 start app.js
查看服务进程列表:
pm2 list
停止pm2
表格中序号为1
的服务进程:
pm2 stop 1
删除pm2
表格中序号为1
的服务进程:
pm2 delete 1
我们可以直接使用以下命令查看pm2
的监控面板(它是类似Vim的一个基于终端的GUI):
pm2 monit