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