是否可以从节点启动进程,该进程不是来自节点实例的子进程,而是系统进程? 如果我使用child_process,父进程中将包含新进程。问题是,如果父进程被取消,所有其他进程都将被终止。我想运行新进程而不是父进程被杀死。
答案 0 :(得分:1)
尝试child.unref()
。 According to the node.js documentation:
如果设置了分离选项,则子进程将成为新进程组的领导者。这使得孩子可以在父退出后继续运行。
默认情况下,父级将等待已分离的子级退出。 要阻止父级等待给定的子级,请使用child.unref()方法,并且父级的事件循环不会将子级包含在其引用计数中。
强调我的。因此,在分叉时,您还可以将true
传递给选项哈希中的detached
选项:
var child = spawn('prg', [], {
detached: true,
stdio: [ 'ignore', out, err ]
});