gpt4 book ai didi

node.js - 分离的子进程在 Node.js 中的脚本退出时退出

转载 作者:太空宇宙 更新时间:2023-11-03 22:55:10 25 4
gpt4 key购买 nike

据我所知,我已按照 api 文档中的说明进行操作。我使用选项 detached:true, stdio:['ignore','ignore','ignore'] 生成该进程。 ,我调用unref在子进程上。 ChildProcess有一个pid,所以我认为它已成功启动。我正在尝试从 grunt 任务中启动 Yeti 服务器。此代码位于异步调用内,因此 next继续并最终完成任务。我用which获取cmd ,它是 /usr/local/bin 中 Yeti 脚本的正确路径。在 Mac OSX 10.9 上。端口也被定义为空端口。如果我在命令行上运行相同的命令,它就可以正常工作。咕噜声退出后我打电话 ps aux | grep nodeps aux并 grep 查找记录的 pid,但没有任何运行。这是代码:

yeti = spawn("" + cmd + " --server --port " + port, [], {
detached: true,
stdio: ['ignore', 'ignore', 'ignore']
});
yeti.unref();
next("Yeti server is running. pid: " + yeti.pid);

最佳答案

试试这个:

spawn(cmd, ["--server", "--port", port], {
detached: true,
stdio: ['ignore', 'ignore', 'ignore']
});

我还没有见过任何 spawn 的示例,其中所有内容都作为第一个参数传递。我总是看到它的第一个参数只是命令名称(即可执行文件名称或可执行文件的路径),第二个参数是字符串数组。

您看到 pid 的事实并不能说明什么,因为在 Unix 类型的系统上,spawnfork,然后execfork 可能会成功,因此您会看到一个新的 pid,但 exec 会失败,因为可执行文件的名称对操作系统来说毫无意义。

关于node.js - 分离的子进程在 Node.js 中的脚本退出时退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20406797/

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