gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 17:57:41 25 4
gpt4 key购买 nike

我正在像这样调用一个独立的 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 fork 一些 worker。

通常子进程和子进程应该在后台运行,如果我错了请纠正我。但是当我尝试时,子进程在前台以交互方式运行。我不知道是什么导致他们做出这样的行为。谁能指出可能是什么问题?

如果我将 detached 设置为 false,它工作正常,但如果所有子级都退出,则原始父级无法退出。

最佳答案

我认为这可能是 node on windows 的问题。

我在 Node 文档中尝试了您的代码和示例代码,您肯定在 http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options 引用了自己在我的 Ubuntu 虚拟机上,它工作得很好。进程已分离并继续运行,除了 out.log 之外没有任何输出,因为它在后台成功运行。

我运行了一个简单的 ping 命令,还在 javascript 文件上运行了一个 Node 实例,就像您尝试做的那样,两者都运行良好。

我建议您在 Windows 中使用 ping 命令执行相同的操作。 . .

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

如果它像您预期的那样工作,则您的 main.js 中可能有某些东西导致了问题。如果它也不起作用,我会说您遇到了 Windows Node 中的错误,应该报告它。

希望对一些人有所帮助!

关于javascript - Node.js 分离的子进程被调用为交互式前台进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17781943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com