创建守护进程
守护进程的启动方式
- 创建一个进程A。
- 在进程A中创建进程B,我们可以使用fork方式,或者其他方法。
- 对进程B执行 setsid 方法。
- 进程A退出,进程B由init进程接管。此时进程B为守护进程。
setsid
- 该进程变成一个新会话的会话领导。
- 该进程变成一个新进程组的组长。
- 该进程没有控制终端。
Nodejs中setsid的调用(分离父进程)
在 spawn 的第三个参数中,可以设置 detached 属性,如果该属性为true,则会调用 setsid 方法。
*unix 下,还要 stdio: 'ignore’ 以及 subprocess.unref()