小智 8
Upstart是一个系统服务控制器,类似于SysV Init,它将启动/停止/重启基本上为其注册的任何服务,基于Node.js还是不启动,它也会自动启动系统启动服务.但Upstart本质上是针对Ubuntu的,而Upstart特定的服务不会在其他Linux发行版上运行.
Upstart有一个SysV Init兼容层,您可以将其作为目标,以保持尽可能广泛的兼容性层.
Forever是一个Node.js应用程序,它根据需要监视并重新启动其他Node.js应用程序,并由其配置JSON定义.对您的服务进行了大量选项和细粒度控制,而无需在自定义SysV Init脚本中复制它所需的工作量.但是,Forever 不是系统服务,因此如果重新启动服务器,则必须再次手动启动永久脚本.
除此之外,如果您需要的只是在崩溃时重启脚本,并且您不关心它在系统启动时自动启动,那么您只需要一个简单的bash脚本:
#!/bin/bash
while true
do
node ./myScript.js
done
Run Code Online (Sandbox Code Playgroud)
只是为了在接受的答案中纠正一个误导性的陈述......新贵是一种仅限Ubuntu的技术.看到:
https://serverfault.com/questions/291546/centos-6-and-upstart http://searchenterpriselinux.techtarget.com/tip/RHEL-6-ditches-System-V-init-for-Upstart-What-Linux -admins-need-to-know http://en.wikipedia.org/wiki/Upstart#Adoption
有了这个,我认为这是一个更引人注目的解决方案.