进程守护
2024年04月09日
启动方式
守护进程的启动方式,过程如下:
- 创建一个进程A
- 在进程A中创建进程B,我们可以使用
fork
方式,或者其他方法 - 对进程B执行
setsid
方法 - 进程A退出,进程B由
init
进程接管。此时进程B为守护进程
setsid
setsid 工作
setid
主要完成三件事:
- 该进程变成一个新会话的会话领导
- 该进程变成一个新进程组的组长
- 该进程没有控制终端
然而, Nodejs
中并没有对 setsid
方法的直接封装,翻阅文档发现有一个地方是可以调用该方法的。
setsid 调用
var spawn = require('child_process').spawn;
var process = require('process');
var p = spawn('node',['b.js'],{
detached : true
});
console.log(process.pid, p.pid);
process.exit(0);
在 spawn
的第三个参数中,可以设置 detached
属性,如果该属性为 true
,则会调用 setsid
方法。这样就满足我们对守护进程的要求。