gpt4 book ai didi

c - posix_spawn Linux : How to make children processes not enter zombie state when terminating

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:52:53 25 4
gpt4 key购买 nike

我有一个进程使用 posix_spawn() 生成另一个进程。当子进程 self 终止时,他们进入僵尸状态,这是默认的预期行为。我希望它们完全终止,但我无法通过使用 posix_spawnattr_setflags() 来实现它。也许我没有使用正确的标志。谁知道该怎么做?

附言最好我希望子进程完全脱离父进程并独立于父进程。

最佳答案

默认情况下,调用 exit()_exit() 会将调用进程的状态更改为 Zombie(如果其父进程仍处于事件状态)。要更改此设置,您可以使用 sigaction():

#include <signal.h>

struct sigaction arg = {
.sa_handler=SIG_IGN,
.sa_flags=SA_NOCLDWAIT // Never wait for termination of a child process.
};

sigaction(SIGCHLD, &arg, NULL);

在父进程中写完以上代码后,就再也不会等待子进程了,子进程完成后会进入Terminated状态,而不是Zombie。

关于c - posix_spawn Linux : How to make children processes not enter zombie state when terminating,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26612640/

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