pstree

pstree命令是用于查看进程树之间的关系,即哪个进程是父进程,哪个是子进程,可以清楚的看出来是谁创建了谁
#pstree
几个重要的参数:
-A: 各进程树之间的连接以ASCII码字符来连接
-U:各进程树之间的连接以utf8字符来连接,某些终端可能会有错误
-p:同时列出每个进程的PID
-u: 同时列出每个进程的所属账号名称:
例子:
#pstree -up
systemd(1)-+-agetty(2021) |-agetty(2022) |-bash(23254,ffy) |-chronyd(1180,chrony) |-crond(1277)—crond(25734)—sogou-agent(25736)—sleep(25759) |-dbus-daemon(1123,dbus) |-python(25707,dlj)-+-python(25778)-+-{python}(25781) | | |-{python}(25783) | | |-{python}(25784) | | |-{python}(27547) | | -{python}(27548) | |-python(25779)-+-{python}(25785) | | |-{python}(25786) | | -{python}(25788) | |-python(25780)-+-{python}(27549) | | |-{python}(27550) | | |-{python}(27551) | | |-{python}(27552) | | |-{python}(27553) | | |-{python}(27554) | | -{python}(27555) | |-python(25782)-+-{python}(29319) | | |-{python}(29320) | | |-{python}(29321) | | |-{python}(29322) | | |-{python}(29323) | | |-{python}(29324) | | -{python}(29325) | `-python(25787)


pstree命令以树状图显示进程间的关系(display a tree of processes)。ps命令可以显示当前正在运行的那些进程的信息,但是对于它们之间的关系却显示得不够清晰。在Linux系统中,系统调用fork可以创建子进程,通过子shell也可以创建子进程,Linux系统中进程之间的关系天生就是一棵树,树的根就是进程PID为1的init进程。
以树状图只显示进程的名字,且相同进程合并显示:
格式:pstree



1、在 Mac OS上



  brew install pstree


2、在 Fedora/Red Hat/CentOS



  yum -y install psmisc


3、在 Ubuntu/Debian



 apt-get install psmisc


pstree [选项] [PID或用户名]



表 1 罗列出了 pstree 命令常用选项以及各自的含义。



表 1 pstree命令常用选项及含义
选项 含义
-a 显示启动每个进程对应的完整指令,包括启动进程的路径、参数等。
-c 不使用精简法显示进程信息,即显示的进程中包含子进程和父进程。
-n 根据进程 PID 号来排序输出,默认是以程序名排序输出的。
-p 显示进程的 PID。
-u 显示进程对应的用户名称。
需要注意的是,在使用 pstree 命令时,如果不指定进程的 PID 号,也不指定用户名称,则会以 init 进程为根进程,显示系统中所有程序和进程的信息;反之,若指定 PID 号或用户名,则将以 PID 或指定命令为根进程,显示 PID 或用户对应的所有程序和进程。
init 进程是系统启动的第一个进程,进程的 PID 是 1,也是系统中所有进程的父进程。



Category linux