在pm2崩溃后重新启动node.js.

时间:2015-01-07 17:36:07

标签: javascript node.js linux command-line pm2

根据this question,pm2应该重新启动崩溃的应用程序。

当我的应用程序崩溃时,没有任何事情发生,pm2 list中缺少该过程。我是否必须以某种方式激活“自动重启选项”?

我正在使用:

  • pm2 v0.12.3
  • node v0.11.14
  • Amazon Linux

2 个答案:

答案 0 :(得分:2)

我尝试使用PM2作为监控Node.js应用程序的唯一方法,结果不佳。最后,我采用的方法是使用Monit来监控应用程序流程,并将pm2配置脚本中的monit用于startOrRestartstop处理。例如,在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 fails to restart applications after a reboot bug的解决方法。

答案 1 :(得分: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"

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