nodejs如何以守护进程运行啊?
发布于 12 年前 作者 wimlwiml 37356 次浏览 最后一次编辑是 8 年前

<p>一般是开一个ssh <br/> 然后: </p>

<pre><code>node t.js
</code></pre>

<p>如果这个ssh关闭,node也关闭了 <br/> 如何让node t.js以守护进程运行啊???</p>

11 回复

nohup node 1 &

后台进程。windows可以变成一个服务。

个人比较推崇使用screen

1.forever 2.node t.js &

linux下可以试试upstart

nohup node app.js &

之前我在小田那里得到了一个更好的方法,这也是Joyent官方所推荐的:

var cluster = require('cluster');
if (cluster.isMaster) {
  //Fork a worker to run the main program
  for (var i = 0; i < 2; i++) var worker = cluster.fork();
} else {
  //Run main program
  require('./app.js');
  console.log('worker is running');
}

cluster.on('death', function(worker) {
  //If the worker died, fork a new worker
  console.log('worker ' + worker.pid + ' died. restart...');
  cluster.fork();
});

这个是我的MoeStream的保护进程,我加了一些注释,以便大家使用。

谢谢WillWen和其它朋友,我暂时先用:
nohup node 1.js > 1.log &

我也是使用 nohup node 1.js > 1.log & 这种方式 参考:http://www.iblue.cc/2012/02/如何提高nodejs程序的稳定性/

可以使用forever吧。

const cp = require('child_process');
const child = cp.spawn('node', [__dirname + '/child.js'], { detached: true, stdio: 'ignore' });
process.exit(0);
回到顶部