根据这个问题,pm2 应该重新启动崩溃的应用程序。
当我的应用程序崩溃时,没有任何反应,并且pm2 list
. 我是否必须以某种方式激活“自动重启选项”?
我在用:
- pm2 v0.12.3
- 节点 v0.11.14
- 亚马逊 Linux
根据这个问题,pm2 应该重新启动崩溃的应用程序。
当我的应用程序崩溃时,没有任何反应,并且pm2 list
. 我是否必须以某种方式激活“自动重启选项”?
我在用:
尝试使用 PM2 作为监控 Node.js 应用程序的唯一方法时,我的结果很差。最后我采取的方法是使用 to Monit来监控应用程序进程,并pm2
在monit
配置脚本中使用 tostartOrRestart
或stop
进程。例如,在一个monitrc
文件中:
check process node_app matching /home/webapps/node_app/app.js
start program = "/bin/bash -lc 'cd /home/webapps/node_app && PM2_HOME=/home/webapps/.pm2 /usr/bin/pm2 startOrRestart processes.json'"
stop program = "/bin/bash -lc 'cd /home/webapps/node_app && PM2_HOME=/home/webapps/.pm2 /usr/bin/pm2 stop processes.json'"
这不仅允许您“观察观察者”,它还有助于解决持久性PM2 在重新启动错误后无法重新启动应用程序的问题。
PM2 应该会自动重新启动应用程序,但是有一些替代方法可以确保 PM2 会执行此操作(包括--watch
您已经链接到的命令)。我走的路线是:
$ pm2 startup systemd
然后 PM2 将输出指令以执行以下命令(注意,我建议复制/粘贴上述 startup
命令的输出,而不是使用下面的示例):
$ sudo su -c "env PATH=$PATH:/usr/bin pm2 startup systemd -u USERNAME --hp /home/USERNAME"
如果应用程序崩溃或服务器重新启动,这将创建环境变量以重新启动您的进程。