Node.js新贵与永远

时间:2013-12-15 23:46:31

标签: node.js upstart forever

我希望守护我的Node.js应用程序。新贵和永远之间的区别是什么?另外,还有其他我想考虑看的包吗?

4 个答案:

答案 0 :(得分:24)

正如评论中所指出的,upstart将用于启动forever脚本,因为upstart具有系统事件的挂钩(如关闭和启动服务器)。< / p>

其他差异是:

  • Upstart是为Linux开发的,而永远是独立于平台的。
  • Forever特定于nodejs,并且在崩溃和登录后重新启动服务器方面有一些非常酷的功能。
  • 永远就足够了开发环境,如果您需要控制服务器的停止方式,则需要新贵。例如,在关闭时,永久进程将被杀死,但是,使用upstart脚本,您可以收集日志并通知管理员。
  • Upstart允许您添加其他监控工具,例如Monit

在其他可用解决方案中,您可以尝试daemon,这相当于永远。

对于upstart设置,我不同意@leorex。查看this blog post以获得一个很好的例子。

答案 1 :(得分:1)

upstart是用于守护应用程序的通用实用程序。 Forever是为Node.js设计的。对于大多数用途,对于Node.js应用程序来说永远是更好的,因为它更简单,针对node.js并且易于配置。只需尝试一些关于暴发户的教程,你就会同意我的看法。

答案 2 :(得分:1)

目标的主要区别在于,upstart旨在启动系统启动时的应用程序。 Forever没有那个,而是专注于保持node.js脚本运行尽管崩溃(很可能是未处理的异常)。你最好将两者结合起来......即从upstart启动forever yourscript.js(在系统启动时)。

那就是说你需要查看你的平台特定版本的upstart等价物。 Upstart永远不会在Windows上,现在已经弃用了ubuntu / debian:http://www.markshuttleworth.com/archives/1316

答案 3 :(得分:1)

2017年,替代方案可能是:

  • pm2。强大,强大的社区,生产级解决方案。也可以管理非节点脚本。我个人的选择。
  • StrongLoop (slc)。节点只。面向生产,包括构建/打包,部署到docker,负载平衡和分析,但是更新。看起来很有希望。

以下是Forever的两个(可能是有偏见的)comparison