创建守护进程

守护进程的启动方式

  1. 创建一个进程A。
  2. 在进程A中创建进程B,我们可以使用fork方式,或者其他方法。
  3. 对进程B执行 setsid 方法。
  4. 进程A退出,进程B由init进程接管。此时进程B为守护进程。

setsid

  1. 该进程变成一个新会话的会话领导。
  2. 该进程变成一个新进程组的组长。
  3. 该进程没有控制终端。

Nodejs中setsid的调用(分离父进程)

在 spawn 的第三个参数中,可以设置 detached 属性,如果该属性为true,则会调用 setsid 方法。

*unix 下,还要 stdio: 'ignore’ 以及 subprocess.unref()