天天看點

linux【監控】pstree顯示程序樹狀圖詳解

文章目錄

  • ​​1. 簡介​​
  • ​​2. 參數​​
  • ​​3. 示例​​
  • ​​3.1 顯示目前所有程序的程序号和程序id​​
  • ​​3.2 顯示所有程序的所有詳細資訊​​
  • ​​3.3 特别表明在運作的程序​​
  • ​​3.4 檢視某一個程序的樹狀圖​​
  • ​​3.5 擷取 SSH 會話的 PID​​

1. 簡介

pstree指令 以樹狀圖的方式展現程序之間的派生關系,顯示效果比較直覺。

2. 參數

-a:顯示每個程式的完整指令,包含路徑,參數或是常駐服務的标示;
-c:不使用精簡标示法;
-G:使用VT100終端機的列繪圖字元;
-h:列出樹狀圖時,特别标明現在執行的程式;
-H<程式識别碼>:此參數的效果和指定"-h"參數類似,但特别标明指定的程式;
-l:采用長列格式顯示樹狀圖;
-n:用程式識别碼排序。預設是以程式名稱來排序;
-p:顯示程式識别碼;
-u:顯示使用者名稱;
-U:使用UTF-8列繪圖字元;
-V:顯示版本資訊。
-t: 顯示線程      

3. 示例

3.1 顯示目前所有程序的程序号和程序id

pstree -p      

3.2 顯示所有程序的所有詳細資訊

pstree  -a      

3.3 特别表明在運作的程序

# pstree -apnh //顯示程序間的關系
systemd,1 auto automatic-ubiquity noprompt
  ├─systemd-journal,471
  ├─lvmetad,488 -f
  ├─systemd-udevd,492
  ├─systemd-timesyn,675
  │   └─{systemd-timesyn},702
  ├─VGAuthService,745
  ├─vmtoolsd,746
  │   ├─{vmtoolsd},762
  │   └─{vmtoolsd},775
  ├─systemd-network,826
  ├─systemd-resolve,838
  ├─rsyslogd,902 -n
  │   ├─{rsyslogd},910
  │   ├─{rsyslogd},911
  │   └─{rsyslogd},912      

3.4 檢視某一個程序的樹狀圖

# -t表示顯示線程,-a表示顯示指令行參數
$ pstree -t -a -p 27458
mysqld,27458 --log_bin=on --sync_binlog=1
...
  ├─{mysqld},27922
  ├─{mysqld},27923
  └─{mysqld},28014      

3.5 擷取 SSH 會話的 PID

pstree -p | grep ssh

#  |-sshd(1221)-+-sshd(2768)---bash(2770)-+-grep(2810)
#  |            `-sshd(2807)---sshd(2808)      

繼續閱讀