linux下,如果关闭进程树

ken_scott 2014-12-30 05:39:02
进程树的结构大概是这样的:

A是父进程;
B是A的子进程;
B的下面可能有多个子进程C、D、E;
B的子进程下面也有子进程F、G、H。。。
可能还有更多层的进程

我们现在唯一可知道的是A和B的进程ID,其他相关进程的ID是不知道的
问:如何关闭进程B以及B下面的所有进程?

我现在唯一能想到的是ps -a -o pid,ppid
再解析
但我更希望能有一些更实用api的来处理,哪怕就是得到和ps一样的结果也好
...全文
365 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ken_scott 2014-12-31
  • 打赏
  • 举报
回复
引用 3 楼 pengzhixi 的回复:
自己通过读/proc目录下的信息来获取
嗯,解析/proc/[pid]/stat 文件 想想整个代码的长度,还是用 “ps -eo pid,ppid,cmd”得了
pengzhixi 2014-12-31
  • 打赏
  • 举报
回复
自己通过读/proc目录下的信息来获取
ken_scott 2014-12-30
  • 打赏
  • 举报
回复
引用 1 楼 pengzhixi 的回复:
恐怕你只能获取所有进程的父进程id,然后和B进程的进程id进行比较,相等就kill。好像没有专门的api可以杀某进程下所有的子进程的。
获取所有进程的父进程id 这个有没有api (获取所有进程的进程id)
pengzhixi 2014-12-30
  • 打赏
  • 举报
回复
恐怕你只能获取所有进程的父进程id,然后和B进程的进程id进行比较,相等就kill。好像没有专门的api可以杀某进程下所有的子进程的。

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧