如何让给定进程产生的整个进程树显示为树,并且只有该树,即没有其他进程?
输出可能看起来像
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)
有没有人有更简单的解决方案?