gpt4 book ai didi

c - 关闭这组进程的最佳方式是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:12:04 24 4
gpt4 key购买 nike

我有以下一组进程,需要由第一个列出的进程以编程方式关闭,这是我正在编写的 C 程序。

PID   PGRP  SESN  PPID USER     TTY  CMD 
6553 6553 6553 1 root ? ./startserv
6554 6553 6553 6553 root ? expect -- /usr/bin/unbuffer ./srcds_run...
6555 6555 6555 6554 root pts/1 /bin/sh ./srcds_run -autoupdate -game c...
6565 6555 6555 6555 root pts/1 ./srcds_linux -autoupdate -game cstrike...

在这种情况下,我通常手动执行的操作是 kill 6553 6555。显然我知道我自己的 pid,但是编写类似“kill my pid + 2”的代码似乎有点傻(尽管看起来这 [almost ] 总是有效。帮助?

最佳答案

这些答案都不是很正确 - 处理这个问题的最简单方法是将进程放在一个进程组中(子进程继承父进程组,所以你的闭源二进制文件也应该很好)通过 getpgrp/setpgrp , 然后通过 killpg 一举杀死他们,这保证了所有这些都将同时收到信号,没有任何竞争条件,这会让在正确时间 fork 的子进程逃脱。

关于c - 关闭这组进程的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3728151/

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