【问题标题】:Nodejs service stops automaticallyNodejs服务自动停止
【发布时间】:2019-07-27 22:08:06
【问题描述】:

我们正在开发在后台套接字中使用 node-js 以继续响应 Web 应用程序的项目。在这两者之间有时会以某种方式自动停止某些进程。

我们想知道我们如何检查所有正在使用的进程。

我们使用 sudo forever list 来列出所有进程。有没有办法在.sh(shell脚本文件)中使用这个命令(永远列表)来检查我的特定进程,比如responsclient是否工作。如果该特定过程不起作用,那么我们需要启动它。

【问题讨论】:

    标签: php node.js sockets


    【解决方案1】:

    有多种解决方案可确保您的服务始终运行。

    其中一个甚至被称为forever。在这里你有一个由express准备的概述。

    但是,对于生产服务,我推荐passenger 结果几乎相同,但可扩展性要大得多。例如,您可以配置为自动添加另一个实例。

    几乎 - 因为它旨在确保 HTTP 的可用性,而不是应用程序的持续运行。

    顺便说一句:服务停止,因为您有未捕获的异常。

    更新

    如果你坚持forever,那么:(我们说的是同一个forever?)

    • 确保forever 由同一用户运行。 forever 为所有用户提供单独的管理员。
    • 确保将数据保存在同一位置。 (自动运行,例如cron 不同于手动启动(env 中的变量))
    • forever has --pidFile - 那么很容易检查进程是否正常
    • 还有ps -aux | grep node应该是你的大朋友。

    不,我没有合并。当我开始有问题时,我切换到passenger。最后我做得很好,因为我有专业的监控,我启动的时间比搜索如何将以上几点结合在一起。

    【讨论】:

    • forever 是 ubuntu 的一项服务,而我想迭代循环来检查永远的所有进程。作为我的服务之一,我的服务开始使用永远自动停止。
    • 对不起,我的英语很差...forever list 适用于永远运行实例的用户
    • 我用过一次“永远”。这对我的需要来说似乎很棒。但随着时间的推移,需求开始增长,现在我使用passenger,即使是小事。
    • 我想你没有明白我的意思,我们想设置一个计划,我们想检查所有永远的过程是否正常工作。如果我们需要的任何流程都不起作用,请重新启动该流程。
    • 你不懂我的。您的选择,但要重新发现轮子,您需要有很多知识。 (见更新)
    猜你喜欢
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    相关资源
    最近更新 更多