【发布时间】:2019-07-27 22:08:06
【问题描述】:
我们正在开发在后台套接字中使用 node-js 以继续响应 Web 应用程序的项目。在这两者之间有时会以某种方式自动停止某些进程。
我们想知道我们如何检查所有正在使用的进程。
我们使用 sudo forever list 来列出所有进程。有没有办法在.sh(shell脚本文件)中使用这个命令(永远列表)来检查我的特定进程,比如responsclient是否工作。如果该特定过程不起作用,那么我们需要启动它。
【问题讨论】:
我们正在开发在后台套接字中使用 node-js 以继续响应 Web 应用程序的项目。在这两者之间有时会以某种方式自动停止某些进程。
我们想知道我们如何检查所有正在使用的进程。
我们使用 sudo forever list 来列出所有进程。有没有办法在.sh(shell脚本文件)中使用这个命令(永远列表)来检查我的特定进程,比如responsclient是否工作。如果该特定过程不起作用,那么我们需要启动它。
【问题讨论】:
有多种解决方案可确保您的服务始终运行。
其中一个甚至被称为forever。在这里你有一个由express准备的概述。
但是,对于生产服务,我推荐passenger 结果几乎相同,但可扩展性要大得多。例如,您可以配置为自动添加另一个实例。
几乎 - 因为它旨在确保 HTTP 的可用性,而不是应用程序的持续运行。
顺便说一句:服务停止,因为您有未捕获的异常。
如果你坚持forever,那么:(我们说的是同一个forever?)
forever 由同一用户运行。 forever 为所有用户提供单独的管理员。cron 不同于手动启动(env 中的变量))forever has --pidFile - 那么很容易检查进程是否正常ps -aux | grep node应该是你的大朋友。不,我没有合并。当我开始有问题时,我切换到passenger。最后我做得很好,因为我有专业的监控,我启动的时间比搜索如何将以上几点结合在一起。
【讨论】:
forever list 适用于永远运行实例的用户
passenger,即使是小事。