定期应用程序在Docker容器中重新启动

我们正在运行一个运行了几个小时的Node.js / Express应用程序,然后开始抛出504错误,没有任何理由。 由于我们目前无法跟踪这些错误,所以我们需要每隔一小时左右重新启动应用程序,以确保它在周末仍然运行。

我们的Ubuntu服务器运行Dokku ,然后为我们的应用程序安装一个容器。 每当应用程序吐出一个504,我们必须以root身份运行docker restart appid

那么每小时自动重新启动节点进程的最佳方法是什么?

抛出504错误没有很好的理由

这是因为你的应用程序正在崩溃

目前无法追踪这些错误

你必须跟踪他们。 它们很可能是未处理的exception,您可以通过以下方式捕获和logging:

 process.on('uncaughtException', function(error) { //look Ma, I died }); 

那么每小时自动重新启动节点进程的最佳方法是什么?

因为我感觉不好,至less不是试图解决你的实际问题,即使你确实是以一种严重不良的方式解决症状而不是问题。

使用cron。 把一个脚本放在/etc/cron.hourly/restart_express里去做。 确保脚本文件具有执行权限并符合run-parts命名约束(无点等)。