1

根据这个问题,pm2 应该重新启动崩溃的应用程序。

当我的应用程序崩溃时,没有任何反应,并且pm2 list. 我是否必须以某种方式激活“自动重启选项”?

我在用:

  • pm2 v0.12.3
  • 节点 v0.11.14
  • 亚马逊 Linux
4

2 回答 2

2

尝试使用 PM2 作为监控 Node.js 应用程序的唯一方法时,我的结果很差。最后我采取的方法是使用 to Monit来监控应用程序进程,并pm2monit配置脚本中使用 tostartOrRestartstop进程。例如,在一个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 在重新启动错误后无法重新启动应用程序的问题。

于 2015-08-24T02:28:26.070 回答
0

PM2 应该会自动重新启动应用程序,但是有一些替代方法可以确保 PM2 会执行此操作(包括--watch您已经链接到的命令)。我走的路线是:

$ pm2 startup systemd

然后 PM2 将输出指令以执行以下命令(注意,我建议复制/粘贴上述 startup 命令的输出,而不是使用下面的示例)

$ sudo su -c "env PATH=$PATH:/usr/bin pm2 startup systemd -u USERNAME --hp /home/USERNAME"

如果应用程序崩溃或服务器重新启动,这将创建环境变量以重新启动您的进程。

于 2017-03-11T14:04:41.720 回答