小编kyn*_*nan的帖子

ps:如何递归获取给定pid的所有子进程

如何让给定进程产生的整个进程树显示为树,并且只有该树,即没有其他进程?

输出可能看起来像

 4378 ?        Ss     0:10 SCREEN
 4897 pts/16   Ss     0:00  \_ -/bin/bash
25667 pts/16   S+     0:00  |   \_ git diff
25669 pts/16   S+     0:00  |       \_ less -FRSX
11118 pts/32   Ss+    0:00  \_ -/bin/bash
11123 pts/32   S+     0:00      \_ vi
Run Code Online (Sandbox Code Playgroud)

我无法仅使用ps.

以下给出了所需的结果,但似乎有点涉及:

#!/bin/bash

pidtree() {
  echo -n $1 " "
  for _child in $(ps -o pid --no-headers --ppid $1); do
    echo -n $_child `pidtree $_child` " "
  done
}

ps f `pidtree 4378`
Run Code Online (Sandbox Code Playgroud)

有没有人有更简单的解决方案?

linux unix process ps

53
推荐指数
4
解决办法
11万
查看次数

标签 统计

linux ×1

process ×1

ps ×1

unix ×1