作为系统进程启动新进程

时间:2014-10-27 15:24:07

标签: node.js process child-process

是否可以从节点启动进程,该进程不是来自节点实例的子进程,而是系统进程? 如果我使用child_process,父进程中将包含新进程。问题是,如果父进程被取消,所有其他进程都将被终止。我想运行新进程而不是父进程被杀死。

1 个答案:

答案 0 :(得分:1)

尝试child.unref()According to the node.js documentation

  

如果设置了分离选项,则子进程将成为新进程组的领导者。这使得孩子可以在父退出后继续运行。

     

默认情况下,父级将等待已分离的子级退出。 要阻止父级等待给定的子级,请使用child.unref()方法,并且父级的事件循环不会将子级包含在其引用计数中。

强调我的。因此,在分叉时,您还可以将true传递给选项哈希中的detached选项:

var child = spawn('prg', [], {
        detached: true,
        stdio: [ 'ignore', out, err ]
    });