12345678910111213141516171819202122232425262728293031323334 |
- /*
- 应用守护脚本。当服务器进程失败时,重启IM服务器。
- */
- var cp = require('child_process');
- var worker;
- function spawn(spawnScript) {
- //进行守护,开启IPC通道,双向通信
- worker = cp.spawn('node', [spawnScript], {
- stdio: [0, 1, 2, 'ipc']
- });
- //监视子进程,当其崩溃时处理
- worker.on('exit', function (code) {
- if (code !== 0) {
- console.log('IM server is down, restarting...');
- spawn(spawnScript);//重启服务
- }
- });
- worker.on('message', function (msg) {
- console.log(msg);
- });
- }
- function main() {
- spawn('./bin/spawn.script'); // 要守护的进程文件
- process.on('SIGTERM', function () {
- worker.kill();
- process.exit(0);
- });
- }
- main();
|