【问题标题】:Restart forever.js for a node.js app through a cron?通过cron重新启动node.js应用程序的forever.js?
【发布时间】:2015-06-01 04:11:12
【问题描述】:

我的 node.js 应用程序有时会崩溃,有时会永远崩溃。js 会自动重新启动它,有时它不会。

日志中没有任何内容 - 我使用 '-e' 选项永远运行,但这不会保存任何错误日志 - 我的主日志只是中断了,仅此而已...

厌倦了试图弄清楚我想知道是否有另一种解决方案:我可以设置一个 cron,它会检查我的 URL 是否有 503 代码,如果是这样,它会永远重启应用程序吗?

我知道如何让 bash 脚本永远启动,但是如何检查 URL 是否返回 503 代码?

谢谢!

【问题讨论】:

  • 为什么不首先调试您的应用程序,以免它崩溃?我建议你放弃 Forever 并使用你的发行版的默认初始化系统,比如 systemd,如果它们意外退出,它可以自动重启进程。
  • 如果您想测试您的应用是否正确响应 http,请使用 curl 命令。
  • @andré systemd to forever 有什么优势?

标签: node.js bash cron forever


【解决方案1】:

以这种方式启动您的应用:

nohup forever app.js > logs &

【讨论】:

  • @deemeetree 它允许命令在您关闭终端后在后台继续。但正如我之前在我的 cmets 中所说的,使用 systemd 更可靠,并且在服务崩溃时不需要手动干预来启动/重新启动服务。
  • 是的,nohup 就是这样做的。我一直使用 nodejs 并且一直受到尊重:如果它没有保持至少 1000 毫秒的信息,您的脚本将退出。但是,如果您的代码仍然存在...只需使用它...但仍要先调试您的代码。
  • 我实际上意识到我的提供者只是在杀死所有进程,所以我想永远不会因此而重新启动应用程序。那么在这种情况下 - systemd 将是最佳选择,对吧?
  • (他们杀死了我的进程,因为 neo4j 图形数据库使用了太多内存并且它现在在共享服务器上)
  • @daniel ,如果我永远使用 nohup app.js > 日志和命令,我会在终端中收到一条消息。你能解释一下这是什么问题吗? terminal@mymac : /var/www/node/chat$ nohup: 忽略输入并将标准错误重定向到标准输出
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-10
  • 2018-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多