Node.js分离的subprocess被调用为交互式前台进程

我正在像这样调用一个独立的child_process (在Windows中)

 var stdout = fs.openSync('./out.log', 'a'); var stderr = fs.openSync('./out.log', 'a'); var child = child_process.spawn('node', ['./main.js'], { detached: true, stdio: [ 'ignore', stdout, stderr ], env: process.env }); child.unref(); 

产生的进程,即main.js反过来派生一些使用child_process.fork工人。

通常情况下,孩子和子孩子的过程应该在后台运行,纠正我,如果我错了。 但是在我尝试的时候,subprocess在前台交互式运行。 我不知道是什么原因导致他们这样做。 任何人都可以指出可能是什么问题?

如果我将它设置为false ,它可以正常工作,但是如果没有退出所有的子项,则原始父项不能退出。

我认为这可能是一个窗口上的节点问题。

我尝试了你的代码和你确实参考了我的Ubuntu虚拟机上的http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options的节点文档上的示例代码,它工作得很好。 进程分离并保持运行,除了out.log外没有任何输出,因为它在后台运行成功。

我同时运行了一个简单的ping命令,并且在你想要做的JavaScript文件上运行了一个节点实例,两者都工作得很好。

我会build议你在Windows中执行ping命令。 。 。

 var child = child_process.spawn('ping', ['-n','25','localhost'],. . . 

如果这样的工作就像你所期望的那样,那么main.js中可能会有一些内容导致问题。 如果它不起作用,我会说你在Windows上的节点的bug,应该报告。

希望有助于一些!