Node.js暴发vs永远
我正在寻求守护我的Node.js应用程序。 新贵和永远有什么区别? 另外,还有其他的软件包,我可能要考虑在看?
正如在评论中指出的, 新贵将被用来启动永远的脚本,因为upstart
挂钩系统事件(如closures和启动你的服务器)。
其他的区别是:
- Upstart是为Linux开发的,而永远是平台无关的。
- 永远是特定于nodejs,并具有一些非常酷的function,关于它崩溃后重新启动服务器,并logging。
- 永远是足够的开发环境,而新贵是必要的,如果你需要有一些控制你的服务器停止。 例如,在关机时,永久进程就会被杀死,但是,用一个新贵的脚本,你可以收集日志并通知pipe理员。
- Upstart允许您添加其他监视工具,如Monit 。
在可用的其他解决scheme中,您可以尝试守护进程 ,这相当于永远。
我不同意@leorex关于新贵设置。 看看这个博客文章的一个很好的例子。
upstart是一个用于守护应用程序的通用工具。 Forever是为Node.jsdevise的 对于大多数用途而言,Node.js应用程序永远更好,因为它更简单,可以调整为node.js并且易于configuration。 只要尝试几个新贵的教程,你会同意我的看法。
目标的主要区别在于,新贵被devise为在系统启动时启动一个应用程序。 永远没有这个,而是专注于保持一个node.js脚本运行,尽pipe崩溃(很可能是未处理的exception)。 你将是明智的结合这两个..即从forever yourscript.js
开始forever yourscript.js
(在系统启动)。
这就是说,你需要看看你的平台具体版本的upstart
等值。 Upstart从来没有在Windows上,现在已经不推荐用于Ubuntu / Debian: http : //www.markshuttleworth.com/archives/1316
在2017年,替代scheme可能是:
- pm2 。 健壮,强大的社区,生产级解决scheme。 也可以pipe理非节点脚本。 我个人的select。
- StrongLoop(slc) 。 节点只。 也面向生产,包括构build/打包,部署到docker工具,负载平衡和性能分析,但更近。 看起来很有希望。
这是一个(也许是有偏见的)与Forever的比较 。