-
Notifications
You must be signed in to change notification settings - Fork 396
03 如何创建守护进程
Sky edited this page Apr 21, 2016
·
2 revisions
默认情况下,当程序遇到异常或者主动调用 process.exit() 会导致应用程序退出,使用守护进程可以监听进程状态,在退出时自动重新启动,以保持进程的持久运行。
https://github.com/eshengsky/iBlog2/blob/master/daemon.js#L17-L28
//监听退出事件
cluster.on('exit', function (worker, code, signal) {
if (code !== 0) {
console.error('worker:%d 异常退出(%s),30s后尝试重启...', worker.process.pid, signal || code);
setTimeout(function () {
var new_worker = cluster.fork();
console.log('worker:%d 正在运行...', new_worker.process.pid);
},30000);
} else {
console.log('worker:%d 正常退出!', worker.process.pid);
}
});
注意 exit code 为 0 表示正常情况的退出。