根据this question,pm2应该重新启动崩溃的应用程序。
当我的应用程序崩溃时,没有任何事情发生,pm2 list
中缺少该过程。我是否必须以某种方式激活“自动重启选项”?
我正在使用:
答案 0 :(得分:2)
我尝试使用PM2作为监控Node.js应用程序的唯一方法,结果不佳。最后,我采用的方法是使用Monit来监控应用程序流程,并将pm2
配置脚本中的monit
用于startOrRestart
或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 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"
如果应用程序崩溃或服务器重新启动,这将创建环境变量以重新启动进程。