centos8平台使用pstree查看进程树

一,pstree用途

Linux pstree命令将所有行程以树状图显示,树状图将会以 pid (如果有指定) 或是以 systemd 这个基本行程为根 (root)

说明:centos6及更旧版本为init为root进程

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

         对应的源码可以访问这里获取: https://github.com/liuhongdi/

 说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,pstree所属的包

1,查询所属的包

[root@blog ~]# whereis pstree
pstree: /usr/bin/pstree /usr/bin/pstree.x11 /usr/share/man/man1/pstree.1.gz

[root@blog ~]# rpm -qf /usr/bin/pstree
psmisc-23.1-3.el8.x86_64

2,如果找不到pstree命令,可以用yum安装

[root@blog ~]# yum install psmisc

三,查看pstree的版本与帮助

1,查看版本

[root@blog ~]# pstree --version
pstree (PSmisc) 23.1
Copyright (C) 1993-2017 Werner Almesberger and Craig Small

2,查看帮助

[root@blog ~]# pstree --help 

四,例子一:查看进程树

[root@blog ~]# pstree
systemd─┬─AliYunDun───25*[{AliYunDun}]
        ├─AliYunDunUpdate───3*[{AliYunDunUpdate}]
...

说明:子进程有多少个,会用数字加*标出

五,例子二:显示每个进程的pid

[root@blog ~]# pstree -p
systemd(1)─┬─AliYunDun(30330)─┬─{AliYunDun}(30331)
           │                  ├─{AliYunDun}(30332)
           │                  ├─{AliYunDun}(30343)
           │                  ├─{AliYunDun}(30344)
           │                  ├─{AliYunDun}(30345)
           │                  ├─{AliYunDun}(30346)
           │                  ├─{AliYunDun}(30347)
           │                  ├─{AliYunDun}(30348)
           │                  ├─{AliYunDun}(30349)
           │                  ├─{AliYunDun}(30350)
           │                  ├─{AliYunDun}(30351)
           │                  ├─{AliYunDun}(30352)
           │                  ├─{AliYunDun}(30353)
           │                  ├─{AliYunDun}(30354)
           │                  ├─{AliYunDun}(30355)
           │                  ├─{AliYunDun}(30356)
           │                  ├─{AliYunDun}(30357)
           │                  ├─{AliYunDun}(30358)
           │                  ├─{AliYunDun}(30359)
           │                  ├─{AliYunDun}(30360)
           │                  ├─{AliYunDun}(30361)
           │                  ├─{AliYunDun}(30362)
           │                  ├─{AliYunDun}(30363)
           │                  ├─{AliYunDun}(17188)
           │                  └─{AliYunDun}(17367)
           ├─AliYunDunUpdate(30315)─┬─{AliYunDunUpdate}(30316)
           │                        ├─{AliYunDunUpdate}(30317)
           │                        └─{AliYunDunUpdate}(30321) 

说明:-p:同时列出每个进程的PID

六,例子三:显示某个进程及其子进程:

[root@blog ~]# pstree -p 30315
AliYunDunUpdate(30315)─┬─{AliYunDunUpdate}(30316)
                       ├─{AliYunDunUpdate}(30317)
                       └─{AliYunDunUpdate}(30321)

说明:显示30315及其子进程,并显示pid

七,例子四:查看mysql用户的进程

[root@blog ~]# pstree mysql
mysqld_safe───mysqld───45*[{mysqld}]

八,例子五:显示指定进程的父进程:

# -a 表示输出命令行选项

# p表PID

# s表示指定进程的父进程

[root@blog ~]# pstree -aps 8244
systemd,1 --system --deserialize 20
  └─redis-server,8240
      └─{redis-server},8244

九,例子六:显示命令行参数

# -t表示显示线程

# -a表示显示命令行参数

# -p表示显示pid

[root@blog ~]# pstree -a -t -p 17246
mysqld_safe,17246 /usr/local/soft/mysql/bin/mysqld_safe --datadir=/data/mysql/data --pid-file=/data/mysql/var/mysqld.pid
  └─mysqld,17700 --basedir=/usr/local/soft/mysql --datadir=/data/mysql/data --plugin-dir=/usr/local/soft/mysql/lib/plugin--log-error=/data/mysql/log/mysqld.log
      ├─{mysqld},17710
      ├─{mysqld},17711
      ├─{mysqld},17712
      ├─{mysqld},17713
      ├─{mysqld},17714
      ├─{mysqld},17715
      ├─{mysqld},17716
      ├─{mysqld},17717
      ├─{mysqld},17718
      ├─{mysqld},17719
      ├─{mysqld},17720
      ├─{mysqld},17721
      ├─{mysqld},17722
      ├─{mysqld},17723
      ├─{mysqld},17724
      ├─{mysqld},17725
      ├─{mysqld},17726
      ├─{mysqld},17727
      ├─{mysqld},17728
      ├─{mysqld},17729
      ├─{mysqld},17730
      ├─{mysqld},17731
      ├─{mysqld},17732
      ├─{mysqld},17733
      ├─{mysqld},17734
      ├─{mysqld},17735
      ├─{mysqld},17736
      ├─{mysqld},17739
      ├─{mysqld},17740
      ├─{mysqld},17743
      ├─{mysqld},17744
      ├─{mysqld},17745
      ├─{mysqld},17746
      ├─{mysqld},17747
      ├─{mysqld},17748
      ├─{mysqld},17754
      ├─{mysqld},17755
      ├─{mysqld},17756
      ├─{mysqld},17759
      ├─{mysqld},17760
      ├─{mysqld},29999
      ├─{mysqld},24718
      ├─{mysqld},24719
      ├─{xpl_worker0},17737
      └─{xpl_worker1},17738

十,查看centos版本: 

[root@blog ~]$ cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)