在运行node.js脚本的上下文中使用upstart脚本或永久脚本有什么优点和缺点?

问题描述 投票:9回答:2

我是一个node.js开发人员。我使用Amazon ec2部署我的node.js应用程序。

我想让我的node.js服务永久运行-如果由于任何原因失败,则重新启动。

我遇到了2种工具。 ForeverUpstart

使用一个相对于另一个有任何优势吗?

还有其他更好的工具吗?

node.js upstart
2个回答
8
投票

Upstart是一个系统服务控制器,类似于SysV Init,它将本质上启动/停止/重新启动为其注册的any服务,无论是否基于Node.js,它还将在系统启动时自动启动以下服务:您。但是Upstart本质上是特定于Ubuntu的,并且Upstart特定的服务不会在其他Linux发行版上运行。

Upstart具有一个SysV Init兼容性层,您可以以此为目标,以保持尽可能广泛的兼容性层。

Forever是一个Node.js应用程序,它根据需要并根据其配置JSON的定义,监视并重新启动其他Node.js应用程序。对您的服务有很多选项和细粒度的控制,而无需在自定义SysV Init脚本中进行复制来进行工作。但是,Forever 不是系统服务,因此,如果服务器重新启动,则必须再次手动启动永远的脚本。

除此之外,如果您需要的是在崩溃时会重新启动脚本的东西,而且您不关心它在系统启动时自动启动,那么您所需要的就是一个简单的bash脚本:

#!/bin/bash
while true
do
    node ./myScript.js
done

5
投票

只是为了纠正已接受的答案中的误导性陈述……这不是真的,暴发户是仅适用于Ubuntu的技术。参见:

https://serverfault.com/questions/291546/centos-6-and-upstarthttp://searchenterpriselinux.techtarget.com/tip/RHEL-6-ditches-System-V-init-for-Upstart-What-Linux-admins-need-to-knowhttp://en.wikipedia.org/wiki/Upstart#Adoption

因此,我认为这是一个更具吸引力的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.