From 1367c2f357f4f1fd73dc1aa0107f92217f3fb0dc Mon Sep 17 00:00:00 2001 From: Sky Date: Thu, 21 Apr 2016 15:32:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AE=88=E6=8A=A4=E8=BF=9B?= =?UTF-8?q?=E7=A8=8B=EF=BC=8C=E4=BC=98=E5=8C=96=E5=A4=9A=E6=A0=B8=E5=BF=83?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E6=80=A7=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- daemon.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 daemon.js diff --git a/daemon.js b/daemon.js new file mode 100644 index 0000000..a7739b0 --- /dev/null +++ b/daemon.js @@ -0,0 +1,28 @@ +var cluster = require('cluster'); +var numCPUs = require('os').cpus().length; + +if (cluster.isMaster) { + var worker; + //遍历CPU核心数 + for (var i = 0; i < numCPUs; i++) { + //生成新的工作进程运行主模块 + worker = cluster.fork(); + console.log('worker:%d 正在运行...', worker.process.pid); + } +} else { + //运行主模块 + require('./bin/www'); +} + +//监听退出事件 +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); + } +}); \ No newline at end of file