Estoy experimentando con node.js y, de este post
http://www.forosdelweb.com/3809087-post6.html en el que Siedrix, que tiene bastante experiencia en el tema, recomienda el uso de upstart o monit para "mantener el proceso corriendo", me han surgido algunas dudas. Según lo leído e investigado, estas utilidades ayudan a arrancar de nuevo un server de este tipo:
archivo example.js
Código PHP:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(8124, "127.0.0.1");
console.log('Server running at http://127.0.0.1:8124/');
//setTimeout(function(){throw Error('foo');},15000);
Pero veo que existen otros caminos para realizar esto. Por ejemplo, si en lugar de llamar de manera directa al archivo example.js lo llamamos indirectamente de esta manera:
archivo example2.js:
Código PHP:
var child_process = require('child_process');
var fs = require("fs");
var sys = require("util");
var MyProcess = child_process.spawn(process.ARGV[0], ['example.js']);
sys.puts('iniciamos example.js');
function restart(){
MyProcess.kill();
MyProcess = child_process.spawn(process.ARGV[0], ['example.js']);
sys.puts('reiniciamos example.js');
MyProcess.on('exit',function(code){sys.puts('se terminó la conexion. Code:'+code);restart();});
}
MyProcess.on('exit',function(code){sys.puts('se terminó la conexion. Code:'+code);restart();});
Claro que eso es sólo un reaseguro y no sé qué tan seguro sea, principalmente comparado con upstart, monit (o daemon.node, que es parte de mi segunda duda).
Entonces, mi duda sería justamente qué tan seguro es esto y si conocen y/o recomiendan
daemon.node