gpt4 book ai didi

c++ - 如何杀死程序的所有进程?

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

我写了一个程序,用 fork() fork 一些进程。如果出现错误,我想杀死所有子进程和母进程。如果我使用 exit(EXIT_FAILURE),则只有子进程被终止。

我正在考虑一个系统("killall [program_name]") 但必须有更好的方法...

谢谢大家!伦纳特

最佳答案

在 UNIX 下,发送 SIGTERM,或 SIGABRT,或 SIGPIPE 或 sth。类似于母进程。然后,如果所有客户端未明确阻止或忽略该信号,该信号将自动传播到所有客户端。

使用getppid() 获取要发送信号的PID,并使用kill() 发送信号。

getppid() returns the process ID of the parent of the calling process.

The kill() system call can be used to send any signal to any process group or process.

备注:1. 使用 system 是邪恶的。使用内部函数发送信号。2. killall 会更邪恶。考虑您的程序的多个实例同时运行。

关于c++ - 如何杀死程序的所有进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/897321/

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