Linuxコマンドを毎日1つ学ぶ(101):pstree


コマンドの概要
pstreeコマンドは、プロセス間の派生関係をツリーグラフで表示します.
[root@centos7 ~]# pstree
-bash: pstree: command not found
[root@centos7 ~]# yum install psmisc -y

構文フォーマット
pstree [OPTIONS] 

オプションの説明
-a  #           
-c  #        
-G  #  VT100         
-h  #      ,           
-H  #         "-h"    
-l  #           
-n  #        
-p  #       
-u  #      
-U  #  UTF-8     
-V  #      

適用例
[root@centos7 ~]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─agetty
        ├─auditd───{auditd}
        ├─chronyd
        ├─crond
        ├─dbus-daemon
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─polkitd───6*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd─┬─sshd───bash─┬─gzip
        │      │             ├─more
        │      │             └─pstree
        │      └─sshd───bash
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        └─tuned───4*[{tuned}]

システムの現在のすべてのプロセスのプロセスIDとプロセス番号を表示
[root@centos7 ~]# pstree -p
systemd(1)─┬─NetworkManager(634)─┬─{NetworkManager}(656)
           │                     └─{NetworkManager}(658)
           ├─agetty(643)
           ├─auditd(600)───{auditd}(601)
           ├─chronyd(646)
           ├─crond(638)
           ├─dbus-daemon(626)
           ├─lvmetad(503)
           ├─master(972)─┬─pickup(5692)
           │             └─qmgr(974)
           ├─polkitd(623)─┬─{polkitd}(633)
           │              ├─{polkitd}(636)
           │              ├─{polkitd}(637)
           │              ├─{polkitd}(641)
           │              ├─{polkitd}(647)
           │              └─{polkitd}(651)
           ├─rsyslogd(870)─┬─{rsyslogd}(897)
           │               └─{rsyslogd}(898)
           ├─sshd(868)─┬─sshd(5304)───bash(5306)─┬─gzip(5328)
           │           │                         ├─more(5329)
           │           │                         └─pstree(6204)
           │           └─sshd(5546)───bash(5548)
           ├─systemd-journal(484)
           ├─systemd-logind(635)
           ├─systemd-udevd(509)
           └─tuned(872)─┬─{tuned}(1131)
                        ├─{tuned}(1132)
                        ├─{tuned}(1134)
                        └─{tuned}(1138)

すべてのプロセスの詳細を表示します.同じプロセス名で表示を圧縮できます.
[root@centos7 ~]# pstree -a
systemd --switched-root --system --deserialize 22
  ├─NetworkManager --no-daemon
  │   └─2*[{NetworkManager}]
  ├─agetty --noclear tty1 linux
  ├─auditd
  │   └─{auditd}
  ├─chronyd
  ├─crond -n
  ├─dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
  ├─lvmetad -f
  ├─master -w
  │   ├─pickup -l -t unix -u
  │   └─qmgr -l -t unix -u
  ├─polkitd --no-debug
  │   └─6*[{polkitd}]
  ├─rsyslogd -n
  │   └─2*[{rsyslogd}]
  ├─sshd -D
  │   ├─sshd
  │   │   └─bash
  │   │       ├─gzip -cd mysql_backup.tar.gz
  │   │       ├─more
  │   │       └─pstree -a
  │   └─sshd
  │       └─bash
  ├─systemd-journal
  ├─systemd-logind
  ├─systemd-udevd
  └─tuned -Es /usr/sbin/tuned -l -P
      └─4*[{tuned}]

指定したプロセスのPIDの表示
[root@centos7 ~]# pstree -p | grep ssh
           |-sshd(868)-+-sshd(5304)---bash(5306)-+-grep(6325)
           |           `-sshd(5546)---bash(5548)
[root@centos7 ~]# pstree -p | grep system
systemd(1)-+-NetworkManager(634)-+-{NetworkManager}(656)
           |-systemd-journal(484)
           |-systemd-logind(635)
           |-systemd-udevd(509)

毎日1つのLinuxコマンドを学びます(98):crontab
毎日1つのLinuxコマンドを学びます(99):nohup
Linuxコマンドを毎日1つ学ぶ(100):iotop