一,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)