Upstart es un controlador de servicio del sistema, similar a SysV Init e inicia/detiene/reinicia esencialmente cualquier servicio registrado, basado en Node.js o no, y también iniciará automáticamente los servicios en el inicio del sistema para tú. Pero Upstart es esencialmente específico de Ubuntu, y los servicios específicos de Upstart no se ejecutarán en otras distribuciones de Linux.
Upstart tiene una capa de compatibilidad SysV Init a la que podría orientar, en cambio, para mantener la mayor capa de compatibilidad posible.
Forever es una aplicación Node.js que supervisa y reinicia otras aplicaciones Node.js según sea necesario, y según lo define su configuración JSON. Muchas opciones y un control detallado sobre su servicio sin el esfuerzo que se necesitaría para duplicarlo en un script SysV Init personalizado. Sin embargo, Forever no es un servicio de sistema, por lo que si el servidor se reinicia, tendrá que iniciar manualmente sus scripts para siempre.
Más allá de eso, si todo lo que necesita es algo que reinicie su script si/cuando falla, y no le importa que comience automáticamente al inicio del sistema, todo lo que necesita es un script bash tan simple como:
#!/bin/bash
while true
do
node ./myScript.js
done
+1 No estoy seguro de por qué esta pregunta está recibiendo más amor! Lo encontré muy útil. –