nodejs如何以守护进程运行啊?
<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);