gpt4 book ai didi

javascript - 如何在 node.js 中清理 child_process.spawn() 上的子进程

转载 作者:数据小太阳 更新时间:2023-10-29 04:27:51 25 4
gpt4 key购买 nike

以下代码:

#!/usr/bin/env node
"use strict";

var child_process = require('child_process');

var x = child_process.spawn('sleep', [100],);

throw new Error("failure");

产生一个子进程并在不等待子进程退出的情况下退出。

我怎么能等呢?我想调用 waitpid(2),但 child_process 似乎没有 waitpid(2)。

添加:

抱歉,我真正想要的是在父进程存在时终止子进程,而不是等待它。

最佳答案

#!/usr/bin/env node
"use strict";

var child_process = require('child_process');

var x = child_process.spawn('sleep', [10]);

x.on('exit', function () {
throw (new Error("failure"));
});

编辑:

您可以通过向主 process 添加一个监听器来监听主进程,例如 process.on('exit', function () { x.kill() })

但是抛出这样的错误是个问题,你最好通过process.exit()

关闭进程
#!/usr/bin/env node
"use strict";

var child_process = require('child_process');

var x = child_process.spawn('sleep', [100]);

process.on('exit', function () {
x.kill();
});

process.exit(1);

关于javascript - 如何在 node.js 中清理 child_process.spawn() 上的子进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14999229/

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