我的nodejs应用在运行后每隔几周不断获得503资源超过错误的信息,因此我需要继续通过ssh重新启动它。我想知道是否可以安装一些东西,以便在出现错误或崩溃时自动重新启动它。
在错误期间,我已经检查了我们的A2Hosting服务器的进程数,但它只显示0/50。
我正在实时使用推送器。
abcd_EFG already set to \\MYCOMPUTER\PrJ\tools\cpcp\cpcpv2
abcd_EFG=\\MYCOMPUTER\PrJ\tools\cpcp\cpcpv2
答案 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。这确实是流程管理器中最好,最简单的。