Linux命令之pstree - 以樹狀圖顯示程式間的關係

小 樓 一 夜 聽 春 雨發表於2016-04-13

本文連結:http://codingstandards.iteye.com/blog/842156   (轉載請註明出處)

用途說明

pstree命令以樹狀圖顯示程式間的關係(display a tree of processes)。ps命令可以顯示當前正在執行的那些程式的資訊,但是對於它們之間的關係卻顯示得不夠清晰。在Linux系統中,系統呼叫fork可以建立子程式,通過子shell也可以建立子程式,Linux系統中程式之間的關係天生就是一棵樹,樹的根就是程式PID為1的init程式。

 

常用引數

格式:pstree

以樹狀圖顯示程式,只顯示程式的名字,且相同程式合併顯示。

 

格式:pstree -p

以樹狀圖顯示程式,還顯示程式PID。

 

格式:pstree <pid>

格式:pstree -p <pid>

以樹狀圖顯示程式PID為<pid>的程式以及子孫程式,如果有-p引數則同時顯示每個程式的PID。

 

格式:pstree -a

以樹狀圖顯示程式,相同名稱的程式不合並顯示,並且會顯示命令列引數,如果有-p引數則同時顯示每個程式的PID。

 

因為pstree輸出的資訊可能比較多,所以最好與more/less配合使用。

 

使用示例

示例一

[root@web ~]# pstree 
init-+-acpid
     |-atd
     |-auditd-+-audispd---{audispd}
     |        `-{auditd}
     |-automount---4*[{automount}]
     |-avahi-daemon---avahi-daemon
     |-crond---5*[crond-+-mj.sh]
     |                  `-sendmail]
     |-cupsd
     |-dbus-daemon---{dbus-daemon}
     |-events/0
     |-events/1
     |-gam_server
     |-gpm
     |-hald---hald-runner-+-hald-addon-acpi
     |                    |-hald-addon-keyb
     |                    `-hald-addon-stor
     |-hcid
     |-hidd
     |-hpiod
     |-java-+-java---17*[{java}]
     |      `-14*[{java}]
     |-java-+-java---29*[{java}]
     |      `-14*[{java}]
     |-java-+-java---34*[{java}]
     |      `-14*[{java}]
     |-java---20*[{java}]
     |-java---292*[{java}]
     |-khelper
     |-klogd
     |-krfcommd
     |-ksoftirqd/0
     |-ksoftirqd/1
     |-kthread-+-aio/0
     |         |-aio/1
     |         |-ata/0
     |         |-ata/1
     |         |-ata_aux
     |         |-cqueue/0
     |         |-cqueue/1
     |         |-hd-audio0
     |         |-kacpid
     |         |-kauditd
     |         |-kblockd/0
     |         |-kblockd/1
     |         |-khubd
     |         |-khungtaskd
     |         |-2*[kjournald]
     |         |-kmpath_handlerd
     |         |-kmpathd/0
     |         |-kmpathd/1
     |         |-kondemand/0
     |         |-kondemand/1
     |         |-kpsmoused
     |         |-kseriod
     |         |-ksnapd
     |         |-kstriped
     |         |-kswapd0
     |         |-2*[pdflush]
     |         |-rpciod/0
     |         |-rpciod/1
     |         |-scsi_eh_0
     |         |-scsi_eh_1
     |         |-scsi_eh_2
     |         |-scsi_eh_3
     |         |-scsi_eh_4
     |         `-scsi_eh_5
     |-loop0
     |-mcstransd
     |-migration/0
     |-migration/1
     |-6*[mingetty]
     |-mj.sh---make---java---11*[{java}]
     |-ntpd
     |-pcscd---{pcscd}
     |-portmap
     |-python
     |-restorecond
     |-rpc.idmapd
     |-rpc.statd
     |-screen---bash---update.sh---cvs
     |-sendmail---2*[sendmail]
     |-sendmail
     |-setroubleshootd---2*[{setroubleshootd}]
     |-smartd
     |-sshd-+-sshd---bash---update_and_rest---cvs
     |      |-sshd---bash---pstree
     |      `-sshd---bash
     |-start_derby.sh---java---45*[{java}]
     |-surf---8*[{surf}]
     |-syslogd
     |-tomcat---sleep
     |-udevd
     |-watchdog/0
     |-watchdog/1
     |-xfs
     |-xinetd
     `-yum-updatesd
[root@web ~]#

 

示例二

[root@web ~]# pstree -p | less 
init(1)-+-acpid(2569)
        |-atd(2983)
        |-auditd(2225)-+-audispd(2227)---{audispd}(2232)
        |              `-{auditd}(2226)
        |-automount(2654)-+-{automount}(2655)
        |                 |-{automount}(2656)
        |                 |-{automount}(2659)
        |                 `-{automount}(2662)
        |-avahi-daemon(3026)---avahi-daemon(3027)
        |-crond(2916)-+-crond(14707)-+-mj.sh(14709)
        |             |              `-sendmail(14773)
        |             |-crond(14708)-+-mj.sh(14710)
        |             |              `-sendmail(14754)
        |             `-crond(26312)-+-mj.sh(26314)
        |                            `-sendmail(26387)
        |-cupsd(2717)
        |-dbus-daemon(2446)---{dbus-daemon}(2447)
        |-events/0(8)
        |-events/1(9)
        |-gam_server(3175)
        |-gpm(2902)
        |-hald(2587)---hald-runner(2588)-+-hald-addon-acpi(2596)
        |                                |-hald-addon-keyb(13708)
        |                                `-hald-addon-stor(2606)
        |-hcid(2477)
        |-hidd(2628)
        |-hpiod(2676)
        |-java(1572)-+-java(1586)-+-{java}(1590)
        |            |            |-{java}(1591)
        |            |            |-{java}(1592)
        |            |            |-{java}(1593)
        |            |            |-{java}(1594)
        |            |            |-{java}(1595)
        |            |            |-{java}(1596)
        |            |            |-{java}(1597)
        |            |            |-{java}(1598)
        |            |            |-{java}(1599)
        |            |            |-{java}(1600)
        |            |            |-{java}(1782)
        |            |            |-{java}(1783)
:

 

示例三

[root@web ~]# pstree -a | less 
init                                              
  |-acpid
  |-atd
  |-auditd
  |   |-audispd
  |   |   `-{audispd}
  |   `-{auditd}
  |-automount
  |   |-{automount}
  |   |-{automount}
  |   |-{automount}
  |   `-{automount}
  |-avahi-daemon
  |   `-avahi-daemon
  |-crond
  |   |-crond
  |   |   |-(mj.sh)
  |   |   `-sendmail
  |   |-crond
  |   |   |-(mj.sh)
  |   |   `-sendmail
  |   |-crond
  |   |   |-(mj.sh)
  |   |   `-sendmail -FCronDaemon -i -odi -oem -oi -t
  |   |-crond
  |   |   |-(mj.sh)
  |   |   `-sendmail -FCronDaemon -i -odi -oem -oi -t
  |   `-crond
  |       |-(mj.sh)
  |       `-sendmail -FCronDaemon -i -odi -oem -oi -t
  |-cupsd
  |-dbus-daemon --system
  |   `-{dbus-daemon}
  |-(events/0)
  |-(events/1)
  |-gam_server
  |-gpm -m /dev/input/mice -t exps2
  |-hald
  |   `-hald-runner
  |       |-hald-addon-acpi
:

 

示例四

[root@web ~]# pstree 2701 
sshd-+-sshd---bash---update_and_rest---cvs
     |-sshd---bash---pstree
     `-sshd---bash
[root@web ~]# pstree -p 2701 
sshd(2701)-+-sshd(6745)---bash(6749)---update_and_rest(14193)---cvs(14194)
           |-sshd(12626)---bash(12630)---pstree(15588)
           `-sshd(13324)---bash(13328)
[root@web ~]#

相關文章