Se puede utilizar siempre programáticamente como esto:
Usando una instancia de siempre dentro de un script Node.js:
var forever = require('forever-monitor');
var child = new (forever.Monitor)('your-filename.js', {
max: 3,
silent: true,
options: []
});
child.on('exit', function() {
console.log('your-filename.js has exited after 3 restarts');
});
child.start();
Usted debe tomar un minuto y leer sobre las opciones disponibles en la excelente documentación para siempre en the README.md
Usted tiene un número de eventos que se pueden escuchar en el siempre así:
- error [err]: se produce cuando se produce un error
- inicio [proceso, fvrFile, datos]: aumenta cuando se inicia por primera vez el script de destino.
- stop [proceso]: se produce cuando el usuario detiene el script de destino
- save [ruta de acceso, datos]: se genera cuando el monitor de destino guarda la información de pid en el disco.
- reinicio [siempre]: Raised cada vez que el guión de destino se reinicia
- de salida [siempre]: Se lanza cuando el guión de destino en realidad sale (permenantly).
- stdout [data]: Se lanza cuando se reciben datos desde el proceso hijo stdout
- stderr [data]: Se lanza cuando se reciben datos desde el proceso hijo stderr
Esto se hace uniendo evento oyentes de la secuencia de comandos que está tratando de ejecutar y manejarlos de una manera elegante.
The code está bastante bien documentado si desea ver exactamente cómo lo hace.
También debe leer esto excellent tutorial para saber cómo mantener un proceso en funcionamiento para siempre.
En cuanto a la segunda pregunta: No, no lo agrega para comenzar en el arranque. Para eso, necesitaría agregarlo como upstart job o usar algo como Monit para monitorearlo e iniciarlo. Para eso, debería echar un vistazo al Deploying Node.js with Upstart and Monit. Es un gran tutorial.
Gracias @ Daan Brackett – cowboybebop