目录:
在Linux机器上工作时,有时您可能需要找出当前正在运行的进程。 您可以使用许多命令来查找有关正在运行的进程的信息,其中
ps
和
top
是最常用的命令。
,我们将讨论
pstree
命令。 它类似于
ps
,但是没有列出正在运行的进程,而是将它们显示在树中。 树状格式是一种更方便的方式来显示流程层次结构,并使输出在视觉上更具吸引力。
如何使用
pstree
命令
pstree
命令的一般语法如下:
ps
在没有任何选项或参数的情况下,
pstree
以最简单的形式显示所有正在运行的进程的分层树结构:
pstree
systemd─┬─VBoxService───7* ├─accounts-daemon───2* ├─2* ├─atd ├─cron ├─dbus-daemon ├─irqbalance───{irqbalance} ├─2* ├─lvmetad ├─lxcfs───2* ├─networkd-dispat───{networkd-dispat} ├─nginx───2*…
树中的top / root项目是所有系统进程的父进程。 在此示例中,
systemd
是启动时启动的第一个进程。
pstree
将相同的分支放在方括号之间并为它们加上代表分支数量的整数作为前缀来合并它们。 这使输出更具可读性和视觉吸引力。
以下是显示如何使用方括号的示例:
├─2*
与:
├─agetty ├─agetty
要禁用相同分支的合并,请使用
-c
选项:
pstree -c
进程的线程显示在父进程下,并使用花括号内的进程名称显示。 这是一个例子:
├─lxcfs───2*
使用
-t
选项显示完整的线程名称。 如果要隐藏线程并仅显示进程,请使用
-T
选项。
通常,
pstree
会显示屏幕上不适合的许多输出行。 要一次查看输出一页,请将其通过管道传递给
less
命令:
pstree | less
如果给定用户名作为参数,则
pstree
仅显示该用户拥有的进程。 例如,以下命令将仅显示由名为“ linuxize”的用户启动的那些进程:
pstree linuxize
当将PID指定为参数时,
pstree
显示一棵以给定进程作为树根的树。 这是一个例子:
pstree 1943
sshd───bash───pstree
要显示给定进程的父进程,请使用
-s
选项,后跟进程PID:
pstree -s 1943
systemd───sshd───sshd───bash───pstree
显示PID和PGID
通常,在运行
pstree
命令时,用户正在寻找的最重要的信息是进程ID。 例如,知道PID可以让您杀死故障过程。
-p
选项指示
pstree
显示PID:
pstree -p
每个进程或线程后的括号中都显示PID。
systemd(1)─┬─VBoxService(955)─┬─{VBoxService}(956) │ ├─{VBoxService}(957) │ ├─{VBoxService}(958) │ ├─{VBoxService}(959) │ ├─{VBoxService}(960) │ ├─{VBoxService}(961) │ └─{VBoxService}(962)…
默认情况下,
pstree
,按名称对具有相同父项的
pstree
排序。
-n
选项告诉
pstree
使用数字排序,即按PID排序:
pstree -pn
一个或多个进程组ID是进程组的第一个成员的进程ID。 要查看PGID,请使用
-g
选项:
pstree -g
每个进程或线程之后的括号中也会显示PID。
systemd(1)─┬─VBoxService(954)─┬─{VBoxService}(954) │ ├─{VBoxService}(954) │ ├─{VBoxService}(954) │ ├─{VBoxService}(954) │ ├─{VBoxService}(954) │ ├─{VBoxService}(954) │ └─{VBoxService}(954)…
显示PID或PGID时,将隐式禁用合并。
显示命令行参数
可以使用指定为命令行参数的配置选项来调用某些程序。
缺省情况下,
pstree
不会为您显示正在运行的进程的命令行参数。 要查看该过程是如何开始的,请将该命令与
-a
选项一起使用:
pstree -a
… ├─agetty -o -p -- \\u --keep-baud 115200, 38400, 9600 ttyS0 vt220 ├─agetty -o -p -- \\u --noclear tty1 linux…
突出显示
pstree
还允许您突出显示流程以更好地呈现视觉效果。
-h
选项指示
pstree
突出显示当前进程及其所有祖先。
pstree -h
要突出显示特定进程,请使用
-H
选项,后跟进程ID:
pstree -H PID_NUMBER
如果不支持突出显示,该命令将退出并显示错误。
结论
pstree
命令以树结构的形式显示正在运行的进程。
有关所有可用
pstree
选项的信息,请在终端中键入
man pstree
。







