【发布时间】:2018-09-26 02:00:30
【问题描述】:
我正在使用:
pgrep -P $$
获取 $$ 的子 pid。但实际上我也想要一份孙子和曾孙的名单。
我该怎么做呢?例如,使用常规编程语言,我们可以使用递归来做到这一点,但是使用 bash?也许使用 bash 函数?
【问题讨论】:
-
Bash 函数是可重入的——你绝对可以递归。
-
顺便说一句,对于大多数实际用途,当您需要将进程树的子集作为一个单元处理时,我倾向于使用会话、cgroup 或类似的操作系统级功能。
-
寻找一个进程的所有后代的话题,特别是这样他们可以被杀死,这个话题经常出现。示例包括 What's the best way to send a signal to all members of a process group? 和 ps: How can i recursively get all child process for a given pid(以及来自它们的许多链接)。