gpt4 book ai didi

c - 杀死父进程的所有子进程但让父进程保持事件状态

转载 作者:行者123 更新时间:2023-12-05 01:07:32 26 4
gpt4 key购买 nike

杀死父进程而不是父进程的最佳方法是什么?假设我有一个不确定数量的子进程,我已经 fork 并在给定的警报中,在我的信号处理程序中,我想杀死我所有的子进程,但由于各种原因让自己继续运行。

截至目前,我正在使用 kill(-1*parentPid, SIGKILL) 但这会杀死我的 parent 及其 child 。

最佳答案

实现此目的的一种方法是传递一些可以捕获的信号(不是 SIGKILL )。然后,安装一个信号处理程序来检测当前进程是否是父进程,并调用 _exit()如果不是父进程。
您可以使用 SIGUSR1SIGUSR2 ,或者 SIGQUIT .
我已经说明了这种技术 here .
可选(根据 Lidong 的建议),父进程可以使用 SIG_IGN在发出 kill() 之前的信号上命令。

signal(SIGQUIT, SIG_IGN);
kill(0, SIGQUIT);

关于c - 杀死父进程的所有子进程但让父进程保持事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18433585/

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