我已准备好一个节点应用程序可行,但有已知和未知的错误会导致节点应用程序崩溃。在这种情况下,如果pm2可以重启节点应用程序会很好。此功能是否已在pm2中提供?
答案 0 :(得分:28)
是的,它默认执行此操作,甚至还有一个watch option可以在更改时重新启动。
答案 1 :(得分:5)
要使应用在崩溃时重新启动,您必须使用PM2重新启动策略之一。
PM2解释为“指数回退重启延迟”:
指数式退避重启不会像异常发生时(例如数据库关闭)那样疯狂地重启应用程序,而将增加两次重启之间的时间。
您可以通过CLI设置
pm2 start app.js --exp-backoff-restart-delay=100
还有其他重启方法,这些方法提到了here。
答案 2 :(得分:1)
还请检查新的出色选项
--exp-backoff-restart-delay=100 (msec, not sec!)
pm2将在100毫秒后重新启动崩溃的应用程序,然后逐步将重新启动延迟增加到15秒
答案 3 :(得分:0)
这可能有帮助:
# Generate Startup Script
$ pm2 startup
# Freeze your process list across server restart
$ pm2 save
# Remove Startup Script
$ pm2 unstartup
更多详细信息here