日期:2014-05-16  浏览次数:20370 次

nodejs 写守护进程

?

?

本来用的是forever来处理守护进程的问题

?

但是过程中发现forever对于mysql数据库连接中断的情况处理不好

?

所以只能效仿其他语言的守护进程模式,感觉挺方便的

?

源码如下

?

var spawn = require('child_process').spawn,
	server = null;


function startServer(){
	console.log('restart server');
	server = spawn('node',['app.js']);
	console.log('node js pid is '+server.pid);
    server.on('close',function(code,signal){
    	server.kill(signal);
    	server = startServer();
    });
    server.on('error',function(code,signal){
    	server.kill(signal);
    	server = startServer();
    });
	return server;
};

startServer();

?

发现其实用nodejs写守护进程挺简单的

貌似有点像erlang的OTP模式