当node.js停止运行时,如何自动将其恢复?

当node.js停止运行时,如何自动将其恢复?,node.js,Node.js,由于节点基本上是一个进程,当出现严重错误时,整个应用程序都会死掉 我现在有两个基于express构建的应用程序,我正在使用一些手动方法来防止延长停机时间(process.on('uncaughtException')和一个自定义心跳监视器) 社区有什么建议吗? 最佳实践?框架 谢谢! A使用类似 或使用 只需npm链接,然后sudo supervisor server.js 这些类型的库还支持热重新加载。您可以从命令行使用一些节点服务,它们作为子进程为您运行节点服务。还有一些人希望您编写代码来重

由于节点基本上是一个进程,当出现严重错误时,整个应用程序都会死掉

我现在有两个基于express构建的应用程序,我正在使用一些手动方法来防止延长停机时间(process.on('uncaughtException')和一个自定义心跳监视器)

社区有什么建议吗? 最佳实践?框架

谢谢! A

使用类似

或使用

只需
npm链接
,然后
sudo supervisor server.js

这些类型的库还支持热重新加载。您可以从命令行使用一些节点服务,它们作为子进程为您运行节点服务。还有一些人希望您编写代码来重新加载自己

理想情况下,您希望向故障安全的全面负载平衡器过渡。如果负载平衡器中的一个节点进程崩溃,您希望它安静地重新启动,并保存所有连接和数据

就我个人而言,我会推荐
supervisor
用于开发(它是由isaacs编写的!),并为您真正的生产服务器推荐一个完整的负载平衡器(nginx或node)

当然,您已经并行运行了多个节点服务器进程,因为您关心跨多个核心的扩展,对不对

尝试查看模块。

使用

“一个简单的CLI工具,用于确保给定脚本连续运行(即永久运行)”

只需使用npm安装它

npm install forever
和类型

forever start app.js

我也强烈推荐
永远
。我昨天用过它,它就像微风一样:

  • 安装
    npm永远安装

  • 启动你的应用程序
    永远启动myapp.js

  • 检查其是否工作
    永久列表

  • 尝试删除你的应用程序:

  • ps


  • 获取myapp.js pid并运行
    kill您可以尝试使用Fugue,一个类似于Spark或Unicorn的node.js库:


    Fugue可以管理任何node.js服务器类型,而不仅仅是web服务器,它是作为node.js脚本而不是CLI命令设置和配置的,因此普通node.js构建和部署工具链可以使用它。

    如果您使用的是Ubuntu,则可以使用upstart(默认安装)

    $cat/etc/init/my_app.conf

    说明“我的应用程序” 作者“我”

    在上启动(本地文件系统和网络设备启动IFACE=eth0)在上停止 关闭

    重生

    exec sh-c“env NODE_env=production NODE/path/myapp/app.js>>/var/log/NODE.log 2>&1”

    “重生”意味着如果应用程序死亡,它将重新启动

    启动应用程序

    启动我的应用程序

    对于其他命令

    人工初始化