有没有办法在503错误后自动重新启动nodejs应用程序?

时间:2019-02-18 19:11:14

标签: node.js websocket shared-hosting pusher

我的nodejs应用在运行后每隔几周不断获得503资源超过错误的信息,因此我需要继续通过ssh重新启动它。我想知道是否可以安装一些东西,以便在出现错误或崩溃时自动重新启动它。

在错误期间,我已经检查了我们的A2Hosting服务器的进程数,但它只显示0/50。

我正在实时使用推送器。

abcd_EFG already set to \\MYCOMPUTER\PrJ\tools\cpcp\cpcpv2
abcd_EFG=\\MYCOMPUTER\PrJ\tools\cpcp\cpcpv2

3 个答案:

答案 0 :(得分:1)

错误不应使您的应用崩溃,您应该处理它并仅记录错误消息。例如,对于express error handler,请参见: error handling patterns with express

此外,如果您的应用程序崩溃,某些程序可以自动重新启动它。最基本的是 forever

forever start app.js

崩溃时它将重新启动您的应用程序。但是我认为最好的是 pm2

pm2 start app.js

功能相同,但是具有许多其他功能,例如负载平衡,部署系统,日志管理

希望有帮助,
最好的问候

答案 1 :(得分:0)

如果您可以在服务器上配置cron作业,请编写脚本以检查日志是否失败,如果发现503错误,则重新启动应用程序,并将脚本附加到cron作业。

脚本可以像

if [ grep -q "503 or something specific" $logfile ]; then {
    service $whatever stop;
    service $whatever start;
} fi

答案 2 :(得分:0)

如果计划尝试执行cron作业/脚本建议,那么您将需要在重新启动后最终清除日志文件,否则会导致重新启动循环。

有一个名为logrotate的工具,它本身是cron实现的,您可以将自己的配置文件添加到/etc/logrotate.d

恕我直言,到目前为止,最好的选择是建议的pm2。这确实是流程管理器中最好,最简单的。