如何自动重启节点服务器?
Posted
技术标签:
【中文标题】如何自动重启节点服务器?【英文标题】:how to automatically restart a node server? 【发布时间】:2013-05-09 00:26:27 【问题描述】:我们正在完成一个项目的开发,客户端已经在使用它但偶尔会出现一些错误 - 崩溃服务器。
我知道我可以在 linux 上将服务注册为“upstart”脚本,以便在我的节点服务崩溃时重新启动它。
但是我们的服务器正在运行其他东西,所以我们无法重新启动它。 好吧,实际上,在写作时,我意识到我有两个问题:
'upstart' 是否可以在不重新启动的情况下工作?有些东西只是对我低声说是:) 如果不是,当我的节点服务器崩溃时,我还有什么其他选项可以“重生”我的节点服务器?【问题讨论】:
【参考方案1】:是的,upstart 将在不重新启动的情况下重新启动您的进程。
另外,您应该查看forever。
【讨论】:
joyent 的错误处理指南不鼓励使用全局错误处理程序:joyent.com/developers/node/design/errors。如果某些未知错误导致异常,最好让应用程序崩溃(然后重新启动),而不是让它处于导致更多难以调试的错误的糟糕状态。 是的。当我发布这个答案时,我没有意识到这一点。感谢您指出。我会删除它。【参考方案2】:PM2 是 Node.js 应用的生产流程经理。
【讨论】:
【参考方案3】:如果您的自动重启重点是始终运行的应用程序,我建议使用进程管理器。进程管理器通常处理节点进程(如果启用了集群),并负责进程/es 的执行。 PM 依赖于操作系统:您的节点应用程序和操作系统没有那么严格的链接,因为 pm 在中间。
最后一招:让流程管理器成为新贵。
Here 是一条完整的性能改进路径。【讨论】:
以上是关于如何自动重启节点服务器?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spark Streaming 中自动重启故障节点?