L57.linux命令每日一练 -- 第九章 Linux进程管理命令 -- ps和pstree

9.1 ps:查看进程

9.1.1 命令详解

【命令星级】 ★★★★★

【功能说明】

​ ps命令用于列出执行ps命令的那个时刻的进程快照,就像用手机给进程照了一张照片。如果想要动态地显示进程的信息,就需要使用top命令,该命令类似于把手机切换成录像模式。

【语法格式】

ps [option]
ps [选项]

说明:

​ 1)在ps命令及后面的选项里,每个元素之间都至少要有一个空格。

​ 2)因为ps命令能够支持多种系统(Linux、Unix等),所以选项较多。但是学习时只需要掌握常用的参数即可。

​ 3)因为ps命令的功能实在是太多了,26个字母已经满足不了,因此在ps命令的参数中有类似于-a与a这2种写法,这2种写法的功能是不一样的。

​ 4)参数的格式具体如下。

  • UNIX格式:一个“-”开头。

  • BSD格式:没有“-”开头。

  • GNU格式:两个“–”开头。

    【选项说明】

    ​ 表9-1针对该命令的参数选项进行了说明。

    ​ 表9-1 ps命令的参数选项及说明
    在这里插入图片描述
    如果读者有兴趣,可以通过man ps命令查看帮助,你也将高高兴地发现,能够查到很多很复杂的内容。

9.1.2 使用范例

​ **范例9-1:**ps命令不接任何参数。

[root@centos7 ~]# ps
   PID TTY          TIME CMD
  1625 pts/0    00:00:00 bash
  1839 pts/0    00:00:00 ps

​ 默认情况下,ps命令不接任何参数时,输出的是使用者当前所在终端(窗口)的进程,其输出结果中的各项说明如下。

  • PID是进出的标识号。
  • TTY是进出所属的终端控制台。
  • TIME列是进程所使用的总的CPU时间。
  • CMD列是正在执行的命令行。

​ **范例9-2:**ps命令常用的操作组合(命令1)。

​ 首先来看一下使用Unix格式输出每个进程信息的方法。

[root@centos7 ~]# ps -ef	#Unix格式参数,使用-e参数显示所有进程,使用-f参数额外显示UID、PPID、C、与STIME栏位。
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 13:32 ?        00:00:05 /usr/lib/systemd/s
root          2      0  0 13:32 ?        00:00:00 [kthreadd]
root          4      2  0 13:32 ?        00:00:00 [kworker/0:0H]
root          5      2  0 13:32 ?        00:00:00 [kworker/u256:0]
root          6      2  0 13:32 ?        00:00:00 [ksoftirqd/0]
root          7      2  0 13:32 ?        00:00:00 [migration/0]
root          8      2  0 13:32 ?        00:00:00 [rcu_bh]
root          9      2  0 13:32 ?        00:00:01 [rcu_sched]
root         10      2  0 13:32 ?        00:00:00 [lru-add-drain]
root         11      2  0 13:32 ?        00:00:00 [watchdog/0]
root         13      2  0 13:32 ?        00:00:00 [kdevtmpfs]
root         14      2  0 13:32 ?        00:00:00 [netns]
root         15      2  0 13:32 ?        00:00:00 [khungtaskd]
root         16      2  0 13:32 ?        00:00:00 [writeback]
root         17      2  0 13:32 ?        00:00:00 [kintegrityd]
root         18      2  0 13:32 ?        00:00:00 [bioset]
root         19      2  0 13:32 ?        00:00:00 [bioset]
root         20      2  0 13:32 ?        00:00:00 [bioset]
root         21      2  0 13:32 ?        00:00:00 [kblockd]
root         22      2  0 13:32 ?        00:00:00 [md]
root         23      2  0 13:32 ?        00:00:00 [edac-poller]
root         24      2  0 13:32 ?        00:00:00 [watchdogd]
root         30      2  0 13:32 ?        00:00:00 [kswapd0]
root         31      2  0 13:32 ?        00:00:00 [ksmd]
root         32      2  0 13:32 ?        00:00:00 [khugepaged]
root         33      2  0 13:32 ?        00:00:00 [crypto]
root         41      2  0 13:32 ?        00:00:00 [kthrotld]
root         43      2  0 13:32 ?        00:00:00 [kmpath_rdacd]
root         44      2  0 13:32 ?        00:00:00 [kaluad]
root         45      2  0 13:32 ?        00:00:00 [kpsmoused]
root         47      2  0 13:32 ?        00:00:00 [ipv6_addrconf]
root         60      2  0 13:32 ?        00:00:00 [deferwq]
root         95      2  0 13:32 ?        00:00:00 [kauditd]
root        233      2  0 13:32 ?        00:00:00 [ata_sff]
root        234      2  0 13:32 ?        00:00:00 [nfit]
root        235      2  0 13:32 ?        00:00:00 [mpt_poll_0]
root        236      2  0 13:32 ?        00:00:00 [mpt/0]
root        239      2  0 13:32 ?        00:00:00 [scsi_eh_0]
root        241      2  0 13:32 ?        00:00:00 [scsi_tmf_0]
root        245      2  0 13:32 ?        00:00:00 [scsi_eh_1]
root        248      2  0 13:32 ?        00:00:00 [scsi_tmf_1]
root        249      2  0 13:32 ?        00:00:00 [scsi_eh_2]
root        250      2  0 13:32 ?        00:00:00 [scsi_tmf_2]
root        253      2  0 13:32 ?        00:00:00 [kworker/u256:3]
root        258      2  0 13:32 ?        00:00:00 [irq/16-vmwgfx]
root        259      2  0 13:32 ?        00:00:00 [ttm_swap]
root        279      2  0 13:32 ?        00:00:00 [bioset]
root        280      2  0 13:32 ?        00:00:00 [xfsalloc]
root        281      2  0 13:32 ?        00:00:00 [xfs_mru_cache]
root        282      2  0 13:32 ?        00:00:00 [xfs-buf/sda3]
root        283      2  0 13:32 ?        00:00:00 [xfs-data/sda3]
root        284      2  0 13:32 ?        00:00:00 [xfs-conv/sda3]
root        285      2  0 13:32 ?        00:00:00 [xfs-cil/sda3]
root        286      2  0 13:32 ?        00:00:00 [xfs-reclaim/sda]
root        287      2  0 13:32 ?        00:00:00 [xfs-log/sda3]
root        288      2  0 13:32 ?        00:00:00 [xfs-eofblocks/s]
root        289      2  0 13:32 ?        00:00:00 [xfsaild/sda3]
root        290      2  0 13:32 ?        00:00:00 [kworker/0:1H]
root        368      1  0 13:33 ?        00:00:00 /usr/lib/systemd/s
root        399      1  0 13:33 ?        00:00:01 /usr/lib/systemd/s
root        528      2  0 13:33 ?        00:00:00 [xfs-buf/sda1]
root        531      2  0 13:33 ?        00:00:00 [xfs-data/sda1]
root        532      2  0 13:33 ?        00:00:00 [xfs-conv/sda1]
root        533      2  0 13:33 ?        00:00:00 [xfs-cil/sda1]
root        534      2  0 13:33 ?        00:00:00 [xfs-reclaim/sda]
root        535      2  0 13:33 ?        00:00:00 [xfs-log/sda1]
root        536      2  0 13:33 ?        00:00:00 [xfs-eofblocks/s]
root        537      2  0 13:33 ?        00:00:00 [xfsaild/sda1]
root        910      1  0 13:33 ?        00:00:00 /sbin/auditd
dbus        933      1  0 13:33 ?        00:00:01 /usr/bin/dbus-daem
root        935      1  0 13:33 ?        00:00:00 /usr/lib/systemd/s
root        938      1  0 13:33 ?        00:00:01 /usr/bin/VGAuthSer
root        939      1  0 13:33 ?        00:00:07 /usr/bin/vmtoolsd
polkitd     940      1  0 13:33 ?        00:00:01 /usr/lib/polkit-1/
root        942      1  0 13:33 ?        00:00:00 /usr/sbin/abrtd -d
root        943      1  0 13:33 ?        00:00:00 /usr/bin/abrt-watc
root        955      1  0 13:33 ?        00:00:00 /usr/sbin/crond -n
root        958      1  0 13:33 tty1     00:00:00 /sbin/agetty --noc
root        998      1  0 13:33 ?        00:00:04 /usr/bin/python2 -
root       1034      1  0 13:33 ?        00:00:01 /usr/sbin/NetworkM
root       1366      1  0 13:33 ?        00:00:03 /usr/bin/python2 -
root       1367      1  0 13:33 ?        00:00:00 /usr/sbin/sshd -D
root       1370      1  0 13:33 ?        00:00:01 /usr/sbin/rsyslogd
root       1457      1  0 13:33 ?        00:00:00 /usr/libexec/postf
postfix    1461   1457  0 13:33 ?        00:00:00 qmgr -l -t unix -u
root       1621   1367  0 13:33 ?        00:00:01 sshd: root@pts/0
root       1625   1621  0 13:33 pts/0    00:00:00 -bash
root       1824      2  0 15:00 ?        00:00:00 [kworker/0:3]
root       1838      2  0 15:05 ?        00:00:00 [kworker/0:1]
root       1846      2  0 15:10 ?        00:00:00 [kworker/0:0]
root       1847   1625  0 15:13 pts/0    00:00:00 ps -ef

​ 输出信息中各列的说明如下。

  • UID:进程被该UID所拥有。
  • PID:进程的标识号。
  • PPID:进场的父进程的标识号。
  • C:CPU使用的资源百分比。
  • STIME进程开始的时间。
  • TTY:该进程是在哪个终端机上面运作,若与终端机无关,则显示“?”,另外,tty1-tty6是本机上面的登入者进程,若为pts/0等,则表示为由网络连接进主机的进程。
  • TIME:进程所使用的总的CPU时间。
  • CMD:正在执行的命令行。

​ 下面是ps与grep的组合用法,用于查找特定进程,比如查找sshd进程等。

[root@centos7 ~]# ps -ef |grep ssh	#使用grep查找关键字ssh的进程。
root       1367      1  0 13:33 ?        00:00:00 /usr/sbin/sshd -D
root       1621   1367  0 13:33 ?        00:00:01 sshd: root@pts/0
root       1855   1625  0 15:19 pts/0    00:00:00 grep --color=autossh

​ **范例9-3:**ps命令常用操作组合(命令2)。

[root@centos7 ~]# ps aux	#BSD格式参数,使用a选项和x选项显示所有进程,使用u显示进程的用户信息。
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.6 193796  6860 ?        Ss   13:32   0:05 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2  0.0  0.0      0     0 ?        S    13:32   0:00 [kthreadd]
root          4  0.0  0.0      0     0 ?        S<   13:32   0:00 [kworker/0:0H]
root          5  0.0  0.0      0     0 ?        S    13:32   0:00 [kworker/u256:0]
root          6  0.0  0.0      0     0 ?        S    13:32   0:00 [ksoftirqd/0]
root          7  0.0  0.0      0     0 ?        S    13:32   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    13:32   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        R    13:32   0:01 [rcu_sched]
root         10  0.0  0.0      0     0 ?        S<   13:32   0:00 [lru-add-drain]
root         11  0.0  0.0      0     0 ?        S    13:32   0:00 [watchdog/0]
root         13  0.0  0.0      0     0 ?        S    13:32   0:00 [kdevtmpfs]
root         14  0.0  0.0      0     0 ?        S<   13:32   0:00 [netns]
root         15  0.0  0.0      0     0 ?        S    13:32   0:00 [khungtaskd]
root         16  0.0  0.0      0     0 ?        S<   13:32   0:00 [writeback]
root         17  0.0  0.0      0     0 ?        S<   13:32   0:00 [kintegrityd]
root         18  0.0  0.0      0     0 ?        S<   13:32   0:00 [bioset]
root         19  0.0  0.0      0     0 ?        S<   13:32   0:00 [bioset]
root         20  0.0  0.0      0     0 ?        S<   13:32   0:00 [bioset]
root         21  0.0  0.0      0     0 ?        S<   13:32   0:00 [kblockd]
root         22  0.0  0.0      0     0 ?        S<   13:32   0:00 [md]
root         23  0.0  0.0      0     0 ?        S<   13:32   0:00 [edac-poller]
root         24  0.0  0.0      0     0 ?        S<   13:32   0:00 [watchdogd]
root         30  0.0  0.0      0     0 ?        S    13:32   0:00 [kswapd0]
root         31  0.0  0.0      0     0 ?        SN   13:32   0:00 [ksmd]
root         32  0.0  0.0      0     0 ?        SN   13:32   0:00 [khugepaged]
root         33  0.0  0.0      0     0 ?        S<   13:32   0:00 [crypto]
root         41  0.0  0.0      0     0 ?        S<   13:32   0:00 [kthrotld]
root         43  0.0  0.0      0     0 ?        S<   13:32   0:00 [kmpath_rdacd]
root         44  0.0  0.0      0     0 ?        S<   13:32   0:00 [kaluad]
root         45  0.0  0.0      0     0 ?        S<   13:32   0:00 [kpsmoused]
root         47  0.0  0.0      0     0 ?        S<   13:32   0:00 [ipv6_addrconf]
root         60  0.0  0.0      0     0 ?        S<   13:32   0:00 [deferwq]
root         95  0.0  0.0      0     0 ?        S    13:32   0:00 [kauditd]
root        233  0.0  0.0      0     0 ?        S<   13:32   0:00 [ata_sff]
root        234  0.0  0.0      0     0 ?        S<   13:32   0:00 [nfit]
root        235  0.0  0.0      0     0 ?        S<   13:32   0:00 [mpt_poll_0]
root        236  0.0  0.0      0     0 ?        S<   13:32   0:00 [mpt/0]
root        239  0.0  0.0      0     0 ?        S    13:32   0:00 [scsi_eh_0]
root        241  0.0  0.0      0     0 ?        S<   13:32   0:00 [scsi_tmf_0]
root        245  0.0  0.0      0     0 ?        S    13:32   0:00 [scsi_eh_1]
root        248  0.0  0.0      0     0 ?        S<   13:32   0:00 [scsi_tmf_1]
root        249  0.0  0.0      0     0 ?        S    13:32   0:00 [scsi_eh_2]
root        250  0.0  0.0      0     0 ?        S<   13:32   0:00 [scsi_tmf_2]
root        253  0.0  0.0      0     0 ?        S    13:32   0:00 [kworker/u256:3]
root        258  0.0  0.0      0     0 ?        S    13:32   0:00 [irq/16-vmwgfx]
root        259  0.0  0.0      0     0 ?        S<   13:32   0:00 [ttm_swap]
root        279  0.0  0.0      0     0 ?        S<   13:32   0:00 [bioset]
root        280  0.0  0.0      0     0 ?        S<   13:32   0:00 [xfsalloc]
root        281  0.0  0.0      0     0 ?        S<   13:32   0:00 [xfs_mru_cache]
root        282  0.0  0.0      0     0 ?        S<   13:32   0:00 [xfs-buf/sda3]
root        283  0.0  0.0      0     0 ?        S<   13:32   0:00 [xfs-data/sda3]
root        284  0.0  0.0      0     0 ?        S<   13:32   0:00 [xfs-conv/sda3]
root        285  0.0  0.0      0     0 ?        S<   13:32   0:00 [xfs-cil/sda3]
root        286  0.0  0.0      0     0 ?        S<   13:32   0:00 [xfs-reclaim/sda]
root        287  0.0  0.0      0     0 ?        S<   13:32   0:00 [xfs-log/sda3]
root        288  0.0  0.0      0     0 ?        S<   13:32   0:00 [xfs-eofblocks/s]
root        289  0.0  0.0      0     0 ?        S    13:32   0:00 [xfsaild/sda3]
root        290  0.0  0.0      0     0 ?        S<   13:32   0:00 [kworker/0:1H]
root        368  0.0  0.2  37112  2792 ?        Ss   13:33   0:00 /usr/lib/systemd/systemd-journald
root        399  0.0  0.5  48812  5844 ?        Ss   13:33   0:01 /usr/lib/systemd/systemd-udevd
root        528  0.0  0.0      0     0 ?        S<   13:33   0:00 [xfs-buf/sda1]
root        531  0.0  0.0      0     0 ?        S<   13:33   0:00 [xfs-data/sda1]
root        532  0.0  0.0      0     0 ?        S<   13:33   0:00 [xfs-conv/sda1]
root        533  0.0  0.0      0     0 ?        S<   13:33   0:00 [xfs-cil/sda1]
root        534  0.0  0.0      0     0 ?        S<   13:33   0:00 [xfs-reclaim/sda]
root        535  0.0  0.0      0     0 ?        S<   13:33   0:00 [xfs-log/sda1]
root        536  0.0  0.0      0     0 ?        S<   13:33   0:00 [xfs-eofblocks/s]
root        537  0.0  0.0      0     0 ?        S    13:33   0:00 [xfsaild/sda1]
root        910  0.0  0.0  55532   852 ?        S<sl 13:33   0:00 /sbin/auditd
dbus        933  0.0  0.2  66476  2572 ?        Ssl  13:33   0:01 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile 
root        935  0.0  0.1  26384  1764 ?        Ss   13:33   0:00 /usr/lib/systemd/systemd-logind
root        938  0.0  0.6  99688  6192 ?        Ss   13:33   0:01 /usr/bin/VGAuthService -s
root        939  0.1  0.6 305284  6504 ?        Ssl  13:33   0:08 /usr/bin/vmtoolsd
polkitd     940  0.0  1.4 613020 13944 ?        Ssl  13:33   0:01 /usr/lib/polkit-1/polkitd --no-debug
root        942  0.0  0.5 228200  5656 ?        Ss   13:33   0:00 /usr/sbin/abrtd -d -s
root        943  0.0  0.4 225856  4808 ?        Ss   13:33   0:00 /usr/bin/abrt-watch-log -F BUG: WARNING: at WARNING: CPU: INFO: possib
root        955  0.0  0.1 126388  1664 ?        Ss   13:33   0:00 /usr/sbin/crond -n
root        958  0.0  0.0 110204   852 tty1     Ss+  13:33   0:00 /sbin/agetty --noclear tty1 linux
root        998  0.0  2.9 358852 29524 ?        Ssl  13:33   0:04 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
root       1034  0.0  0.8 474208  8588 ?        Ssl  13:33   0:01 /usr/sbin/NetworkManager --no-daemon
root       1366  0.0  1.9 574304 19532 ?        Ssl  13:33   0:03 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root       1367  0.0  0.4 112924  4308 ?        Ss   13:33   0:00 /usr/sbin/sshd -D
root       1370  0.0  0.4 216584  4740 ?        Ssl  13:33   0:01 /usr/sbin/rsyslogd -n
root       1457  0.0  0.2  89704  2136 ?        Ss   13:33   0:00 /usr/libexec/postfix/master -w
postfix    1461  0.0  0.4  89876  4084 ?        S    13:33   0:00 qmgr -l -t unix -u
root       1621  0.0  0.5 158928  5604 ?        Ss   13:33   0:01 sshd: root@pts/0
root       1625  0.0  0.3 116600  3268 pts/0    Ss   13:33   0:00 -bash
root       1824  0.0  0.0      0     0 ?        S    15:00   0:00 [kworker/0:3]
root       1846  0.0  0.0      0     0 ?        R    15:10   0:00 [kworker/0:0]
postfix    1852  0.0  0.4  89808  4060 ?        S    15:13   0:00 pickup -l -t unix -u
root       1853  0.0  0.0      0     0 ?        S    15:15   0:00 [kworker/0:1]
root       1862  0.0  0.1 155472  1856 pts/0    R+   15:20   0:00 ps aux

​ 输出信息中各列的说明如下。

  • USER:该进程属于的用户。
  • PID:该进程的进程号。
  • %CPU:该进程使用掉的CPU资源百分比。
  • %MEM:该进程所占用的物理内存百分比。
  • VSZ:该进程使用掉的虚拟内存量(单位为Kbytes)。
  • RSS:该进程占用的股东的内存量(单位为Kbytes)。
  • TTY:该进程是在哪个终端机上面运作,若与终端机无关,则显示“?”,另外,tty1-tty6是本机上面的登入者进程,若为pts/0等,则表示为由网络连接进主机的进程。
  • STAT:该进程目前的状态,主要的状态包括以下几种。
  • R:正在运行,或者是可以运行。
  • S:正在终端睡眠中,可以由某些信号(signal)唤醒。
  • D:不可中断睡眠。
  • T:正在侦测或者是停止了。
  • Z:已经终止,但是其父进程无法正常终止它,从而变成zombie(僵尸)进程的状态。
  • +:前台进程。
  • l:多线程进程。
  • N:低优先级进程。
  • <:高优先级进程。
  • s:进程领导者。
  • L:已将页面锁定到内存中。
  • START:该进程被触发启动的时间。
  • TIME:该进程实际使用CPU运作的时间。
  • COMMAND:该进程的实际命令。

​ **范例9-4:**显示指定用户的相关进程信息。

[root@centos7 ~]# ps -u root	#UNIX格式参数,使用-u显示指定用户相关的进程信息。
   PID TTY          TIME CMD
     1 ?        00:00:05 systemd
     2 ?        00:00:00 kthreadd
     4 ?        00:00:00 kworker/0:0H
     5 ?        00:00:00 kworker/u256:0
     6 ?        00:00:00 ksoftirqd/0
     7 ?        00:00:00 migration/0
     8 ?        00:00:00 rcu_bh
     9 ?        00:00:01 rcu_sched
    10 ?        00:00:00 lru-add-drain
    11 ?        00:00:00 watchdog/0
    13 ?        00:00:00 kdevtmpfs
    14 ?        00:00:00 netns
    15 ?        00:00:00 khungtaskd
    16 ?        00:00:00 writeback
    17 ?        00:00:00 kintegrityd
    18 ?        00:00:00 bioset
    19 ?        00:00:00 bioset
    20 ?        00:00:00 bioset
    21 ?        00:00:00 kblockd
    22 ?        00:00:00 md
    23 ?        00:00:00 edac-poller
    24 ?        00:00:00 watchdogd
    30 ?        00:00:00 kswapd0
    31 ?        00:00:00 ksmd
    32 ?        00:00:00 khugepaged
    33 ?        00:00:00 crypto
    41 ?        00:00:00 kthrotld
    43 ?        00:00:00 kmpath_rdacd
    44 ?        00:00:00 kaluad
    45 ?        00:00:00 kpsmoused
    47 ?        00:00:00 ipv6_addrconf
    60 ?        00:00:00 deferwq
    95 ?        00:00:00 kauditd
   233 ?        00:00:00 ata_sff
   234 ?        00:00:00 nfit
   235 ?        00:00:00 mpt_poll_0
   236 ?        00:00:00 mpt/0
   239 ?        00:00:00 scsi_eh_0
   241 ?        00:00:00 scsi_tmf_0
   245 ?        00:00:00 scsi_eh_1
   248 ?        00:00:00 scsi_tmf_1
   249 ?        00:00:00 scsi_eh_2
   250 ?        00:00:00 scsi_tmf_2
   253 ?        00:00:00 kworker/u256:3
   258 ?        00:00:00 irq/16-vmwgfx
   259 ?        00:00:00 ttm_swap
   279 ?        00:00:00 bioset
   280 ?        00:00:00 xfsalloc
   281 ?        00:00:00 xfs_mru_cache
   282 ?        00:00:00 xfs-buf/sda3
   283 ?        00:00:00 xfs-data/sda3
   284 ?        00:00:00 xfs-conv/sda3
   285 ?        00:00:00 xfs-cil/sda3
   286 ?        00:00:00 xfs-reclaim/sda
   287 ?        00:00:00 xfs-log/sda3
   288 ?        00:00:00 xfs-eofblocks/s
   289 ?        00:00:00 xfsaild/sda3
   290 ?        00:00:00 kworker/0:1H
   368 ?        00:00:00 systemd-journal
   399 ?        00:00:01 systemd-udevd
   528 ?        00:00:00 xfs-buf/sda1
   531 ?        00:00:00 xfs-data/sda1
   532 ?        00:00:00 xfs-conv/sda1
   533 ?        00:00:00 xfs-cil/sda1
   534 ?        00:00:00 xfs-reclaim/sda
   535 ?        00:00:00 xfs-log/sda1
   536 ?        00:00:00 xfs-eofblocks/s
   537 ?        00:00:00 xfsaild/sda1
   910 ?        00:00:00 auditd
   935 ?        00:00:00 systemd-logind
   938 ?        00:00:01 VGAuthService
   939 ?        00:00:09 vmtoolsd
   942 ?        00:00:00 abrtd
   943 ?        00:00:00 abrt-watch-log
   955 ?        00:00:00 crond
   958 tty1     00:00:00 agetty
   998 ?        00:00:04 firewalld
  1034 ?        00:00:01 NetworkManager
  1366 ?        00:00:03 tuned
  1367 ?        00:00:00 sshd
  1370 ?        00:00:01 rsyslogd
  1457 ?        00:00:00 master
  1621 ?        00:00:01 sshd
  1625 pts/0    00:00:00 bash
  1846 ?        00:00:00 kworker/0:0
  1853 ?        00:00:00 kworker/0:1
  1873 ?        00:00:00 kworker/0:2
  1880 pts/0    00:00:00 ps

​ **范例9-5:**以详细的格式显示进程状况。

[root@centos7 ~]# ps -l	#Unix格式参数,使用参数-l以详细的格式显示进场的状况。
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0   1625   1621  0  80   0 - 29150 do_wai pts/0    00:00:00 bash
0 R     0   1882   1625  0  80   0 - 38337 -      pts/0    00:00:00 ps

​ 输出信息中各列的说明如下。

  • F:代表这个进程的标志(flag),4代表使用者为super user。
  • S:代表这个进程的状态(STAT),前面已经讲解过。
  • UID:进程被该UID所拥有。
  • PID:进程的标识号。
  • PPID:父进程的ID。
  • C:CPU使用的资源百分比。
  • PRI:Priority(优先执行序)的缩写。
  • NI:Nice值。
  • ADDR:指出该进程在内存的哪个部分。如果是个running的进程,则一般是“-”。
  • SZ:使用掉的内存大小。
  • WCHAN:目前这个进程是否正在运作当中,若为“-”则表示正在运作。
  • TTY:该进程是在哪个终端机上面运作,若与终端机无关,则显示“?”,另外,tty1-tty6是本机上面的登入者进程,若为pts/0等,则表示为由网络连接进主机的进程。
  • TIME:该进程实际使用CPU运作的时间。
  • CMD:该进程的实际命令。

​ **范例9-6:**显示进程树。

[root@centos7 ~]# ps -eH	#Unix格式参数,使用-e参数显示所有进程,使用-H参数显示进程树。
   PID TTY          TIME CMD
     2 ?        00:00:00 kthreadd
     4 ?        00:00:00   kworker/0:0H
     5 ?        00:00:00   kworker/u256:0
     6 ?        00:00:00   ksoftirqd/0
     7 ?        00:00:00   migration/0
     8 ?        00:00:00   rcu_bh
     9 ?        00:00:01   rcu_sched
    10 ?        00:00:00   lru-add-drain
    11 ?        00:00:00   watchdog/0
    13 ?        00:00:00   kdevtmpfs
    14 ?        00:00:00   netns
    15 ?        00:00:00   khungtaskd
    16 ?        00:00:00   writeback
    17 ?        00:00:00   kintegrityd
    18 ?        00:00:00   bioset
    19 ?        00:00:00   bioset
    20 ?        00:00:00   bioset
    21 ?        00:00:00   kblockd
    22 ?        00:00:00   md
    23 ?        00:00:00   edac-poller
    24 ?        00:00:00   watchdogd
    30 ?        00:00:00   kswapd0
    31 ?        00:00:00   ksmd
    32 ?        00:00:00   khugepaged
    33 ?        00:00:00   crypto
    41 ?        00:00:00   kthrotld
    43 ?        00:00:00   kmpath_rdacd
    44 ?        00:00:00   kaluad
    45 ?        00:00:00   kpsmoused
    47 ?        00:00:00   ipv6_addrconf
    60 ?        00:00:00   deferwq
    95 ?        00:00:00   kauditd
   233 ?        00:00:00   ata_sff
   234 ?        00:00:00   nfit
   235 ?        00:00:00   mpt_poll_0
   236 ?        00:00:00   mpt/0
   239 ?        00:00:00   scsi_eh_0
   241 ?        00:00:00   scsi_tmf_0
   245 ?        00:00:00   scsi_eh_1
   248 ?        00:00:00   scsi_tmf_1
   249 ?        00:00:00   scsi_eh_2
   250 ?        00:00:00   scsi_tmf_2
   253 ?        00:00:00   kworker/u256:3
   258 ?        00:00:00   irq/16-vmwgfx
   259 ?        00:00:00   ttm_swap
   279 ?        00:00:00   bioset
   280 ?        00:00:00   xfsalloc
   281 ?        00:00:00   xfs_mru_cache
   282 ?        00:00:00   xfs-buf/sda3
   283 ?        00:00:00   xfs-data/sda3
   284 ?        00:00:00   xfs-conv/sda3
   285 ?        00:00:00   xfs-cil/sda3
   286 ?        00:00:00   xfs-reclaim/sda
   287 ?        00:00:00   xfs-log/sda3
   288 ?        00:00:00   xfs-eofblocks/s
   289 ?        00:00:00   xfsaild/sda3
   290 ?        00:00:00   kworker/0:1H
   528 ?        00:00:00   xfs-buf/sda1
   531 ?        00:00:00   xfs-data/sda1
   532 ?        00:00:00   xfs-conv/sda1
   533 ?        00:00:00   xfs-cil/sda1
   534 ?        00:00:00   xfs-reclaim/sda
   535 ?        00:00:00   xfs-log/sda1
   536 ?        00:00:00   xfs-eofblocks/s
   537 ?        00:00:00   xfsaild/sda1
  1846 ?        00:00:00   kworker/0:0
  1881 ?        00:00:00   kworker/0:1
  1883 ?        00:00:00   kworker/0:2
     1 ?        00:00:05 systemd
   368 ?        00:00:00   systemd-journal
   399 ?        00:00:01   systemd-udevd
   910 ?        00:00:00   auditd
   933 ?        00:00:01   dbus-daemon
   935 ?        00:00:00   systemd-logind
   938 ?        00:00:01   VGAuthService
   939 ?        00:00:09   vmtoolsd
   940 ?        00:00:01   polkitd
   942 ?        00:00:00   abrtd
   943 ?        00:00:00   abrt-watch-log
   955 ?        00:00:00   crond
   958 tty1     00:00:00   agetty
   998 ?        00:00:04   firewalld
  1034 ?        00:00:01   NetworkManager
  1366 ?        00:00:03   tuned
  1367 ?        00:00:00   sshd
  1621 ?        00:00:01     sshd
  1625 pts/0    00:00:00       bash
  1884 pts/0    00:00:00         ps
  1370 ?        00:00:01   rsyslogd
  1457 ?        00:00:00   master
  1461 ?        00:00:00     qmgr
  1852 ?        00:00:00     pickup
  
[root@centos7 ~]# ps axf	#BSD格式参数,使用a和x参数显示所有进程,使用f显示进程树。
   PID TTY      STAT   TIME COMMAND
     2 ?        S      0:00 [kthreadd]
     4 ?        S<     0:00  \_ [kworker/0:0H]
     5 ?        S      0:00  \_ [kworker/u256:0]
     6 ?        S      0:00  \_ [ksoftirqd/0]
     7 ?        S      0:00  \_ [migration/0]
     8 ?        S      0:00  \_ [rcu_bh]
     9 ?        R      0:01  \_ [rcu_sched]
    10 ?        S<     0:00  \_ [lru-add-drain]
    11 ?        S      0:00  \_ [watchdog/0]
    13 ?        S      0:00  \_ [kdevtmpfs]
    14 ?        S<     0:00  \_ [netns]
    15 ?        S      0:00  \_ [khungtaskd]
    16 ?        S<     0:00  \_ [writeback]
    17 ?        S<     0:00  \_ [kintegrityd]
    18 ?        S<     0:00  \_ [bioset]
    19 ?        S<     0:00  \_ [bioset]
    20 ?        S<     0:00  \_ [bioset]
    21 ?        S<     0:00  \_ [kblockd]
    22 ?        S<     0:00  \_ [md]
    23 ?        S<     0:00  \_ [edac-poller]
    24 ?        S<     0:00  \_ [watchdogd]
    30 ?        S      0:00  \_ [kswapd0]
    31 ?        SN     0:00  \_ [ksmd]
    32 ?        SN     0:00  \_ [khugepaged]
    33 ?        S<     0:00  \_ [crypto]
    41 ?        S<     0:00  \_ [kthrotld]
    43 ?        S<     0:00  \_ [kmpath_rdacd]
    44 ?        S<     0:00  \_ [kaluad]
    45 ?        S<     0:00  \_ [kpsmoused]
    47 ?        S<     0:00  \_ [ipv6_addrconf]
    60 ?        S<     0:00  \_ [deferwq]
    95 ?        S      0:00  \_ [kauditd]
   233 ?        S<     0:00  \_ [ata_sff]
   234 ?        S<     0:00  \_ [nfit]
   235 ?        S<     0:00  \_ [mpt_poll_0]
   236 ?        S<     0:00  \_ [mpt/0]
   239 ?        S      0:00  \_ [scsi_eh_0]
   241 ?        S<     0:00  \_ [scsi_tmf_0]
   245 ?        S      0:00  \_ [scsi_eh_1]
   248 ?        S<     0:00  \_ [scsi_tmf_1]
   249 ?        S      0:00  \_ [scsi_eh_2]
   250 ?        S<     0:00  \_ [scsi_tmf_2]
   253 ?        S      0:00  \_ [kworker/u256:3]
   258 ?        S      0:00  \_ [irq/16-vmwgfx]
   259 ?        S<     0:00  \_ [ttm_swap]
   279 ?        S<     0:00  \_ [bioset]
   280 ?        S<     0:00  \_ [xfsalloc]
   281 ?        S<     0:00  \_ [xfs_mru_cache]
   282 ?        S<     0:00  \_ [xfs-buf/sda3]
   283 ?        S<     0:00  \_ [xfs-data/sda3]
   284 ?        S<     0:00  \_ [xfs-conv/sda3]
   285 ?        S<     0:00  \_ [xfs-cil/sda3]
   286 ?        S<     0:00  \_ [xfs-reclaim/sda]
   287 ?        S<     0:00  \_ [xfs-log/sda3]
   288 ?        S<     0:00  \_ [xfs-eofblocks/s]
   289 ?        S      0:00  \_ [xfsaild/sda3]
   290 ?        S<     0:00  \_ [kworker/0:1H]
   528 ?        S<     0:00  \_ [xfs-buf/sda1]
   531 ?        S<     0:00  \_ [xfs-data/sda1]
   532 ?        S<     0:00  \_ [xfs-conv/sda1]
   533 ?        S<     0:00  \_ [xfs-cil/sda1]
   534 ?        S<     0:00  \_ [xfs-reclaim/sda]
   535 ?        S<     0:00  \_ [xfs-log/sda1]
   536 ?        S<     0:00  \_ [xfs-eofblocks/s]
   537 ?        S      0:00  \_ [xfsaild/sda1]
  1846 ?        S      0:00  \_ [kworker/0:0]
  1881 ?        S      0:00  \_ [kworker/0:1]
  1883 ?        S      0:00  \_ [kworker/0:2]
     1 ?        Ss     0:05 /usr/lib/systemd/systemd --switched-root
   368 ?        Ss     0:00 /usr/lib/systemd/systemd-journald
   399 ?        Ss     0:01 /usr/lib/systemd/systemd-udevd
   910 ?        S<sl   0:00 /sbin/auditd
   933 ?        Ssl    0:01 /usr/bin/dbus-daemon --system --address=
   935 ?        Ss     0:00 /usr/lib/systemd/systemd-logind
   938 ?        Ss     0:01 /usr/bin/VGAuthService -s
   939 ?        Ssl    0:09 /usr/bin/vmtoolsd
   940 ?        Ssl    0:01 /usr/lib/polkit-1/polkitd --no-debug
   942 ?        Ss     0:00 /usr/sbin/abrtd -d -s
   943 ?        Ss     0:00 /usr/bin/abrt-watch-log -F BUG: WARNING:
   955 ?        Ss     0:00 /usr/sbin/crond -n
   958 tty1     Ss+    0:00 /sbin/agetty --noclear tty1 linux
   998 ?        Ssl    0:04 /usr/bin/python2 -Es /usr/sbin/firewalld
  1034 ?        Ssl    0:01 /usr/sbin/NetworkManager --no-daemon
  1366 ?        Ssl    0:03 /usr/bin/python2 -Es /usr/sbin/tuned -l 
  1367 ?        Ss     0:00 /usr/sbin/sshd -D
  1621 ?        Ss     0:01  \_ sshd: root@pts/0
  1625 pts/0    Ss     0:00      \_ -bash
  1885 pts/0    R+     0:00          \_ ps axf
  1370 ?        Ssl    0:01 /usr/sbin/rsyslogd -n
  1457 ?        Ss     0:00 /usr/libexec/postfix/master -w
  1461 ?        S      0:00  \_ qmgr -l -t unix -u
  1852 ?        S      0:00  \_ pickup -l -t unix -u

​ **范例9-7:**输出指出的字段。

​ (1)AIX格式:ps -eo “%p%y%x%c”

​ 语法说明:-e是显示所有进程,-o表示可以自定义输出指定的字段,以逗号分隔,其支持的字段见下面的代码。

AIX FORMAT DESCRIPTORS	#man ps 查询这个字段。
CODE	NORMAL	HEADER
代码	   标准含义  命令行表头内容
%C     pcpu     %CPU
%G     group    GROUP
%P     ppid     PPID
%U     user     USER
%a     args     COMMAND
%c     comm     COMMAND
%g     rgroup   RGROUP
%n     nice     NI
%p     pid      PID
%r     pgid     PGID
%t     etime    ELAPSED

%u     ruser    RUSER
%x     time     TIME
%y     tty      TTY
%z     vsz      VSZ

​ (2)标准格式:ps -eo pid,user,args-sort pid

​ 其支持的字段比较多,请大家查询man ps并搜索STANDARD PORMAT SPECIFIERS来了解。

[root@centos7 ~]# ps -o pid,ppid,pgrp,session,tpgid,comm	#-o后面接上要显示的字段,可以和命令结果的第一行进行对比。
   PID   PPID   PGRP   SESS  TPGID COMMAND
  1625   1621   1625   1625   1913 bash
  1913   1625   1913   1625   1913 ps
  
#查看进程并按vsz列从大到小排列,--sort vsz或--sort +vsz表示从小到大升序排列,--sort -vsz表示从大到小降序排列。
[root@centos7 ~]# ps -eo "%C : %p : %z : %a" --sort -vsz
%CPU :    PID :    VSZ : COMMAND
 0.0 :    940 : 613020 : /usr/lib/polkit-1/polkitd --no-debug
 0.0 :   1366 : 574304 : /usr/bin/python2 -Es /usr/sbin/tuned -l -P
 0.0 :   1034 : 474208 : /usr/sbin/NetworkManager --no-daemon
 0.0 :    998 : 358852 : /usr/bin/python2 -Es /usr/sbin/firewalld --
 0.1 :    939 : 305284 : /usr/bin/vmtoolsd
 0.0 :    942 : 228200 : /usr/sbin/abrtd -d -s
 0.0 :    943 : 225856 : /usr/bin/abrt-watch-log -F BUG: WARNING: at
 0.0 :   1370 : 216584 : /usr/sbin/rsyslogd -n
 0.0 :      1 : 193796 : /usr/lib/systemd/systemd --switched-root --
 0.0 :   1621 : 158928 : sshd: root@pts/0
 0.0 :   1933 : 153480 : ps -eo %C : %p : %z : %a --sort -vsz
 0.0 :    955 : 126388 : /usr/sbin/crond -n
 0.0 :   1625 : 116600 : -bash
 0.0 :   1367 : 112924 : /usr/sbin/sshd -D
 0.0 :    958 : 110204 : /sbin/agetty --noclear tty1 linux
 0.0 :    938 :  99688 : /usr/bin/VGAuthService -s
 0.0 :   1461 :  89876 : qmgr -l -t unix -u
 0.0 :   1852 :  89808 : pickup -l -t unix -u
 0.0 :   1457 :  89704 : /usr/libexec/postfix/master -w
 0.0 :    933 :  66476 : /usr/bin/dbus-daemon --system --address=sys
 0.0 :    910 :  55532 : /sbin/auditd
 0.0 :    399 :  48812 : /usr/lib/systemd/systemd-udevd
 0.0 :    368 :  37112 : /usr/lib/systemd/systemd-journald
 0.0 :    935 :  26384 : /usr/lib/systemd/systemd-logind
 0.0 :      2 :      0 : [kthreadd]
 0.0 :      4 :      0 : [kworker/0:0H]
 0.0 :      5 :      0 : [kworker/u256:0]
 0.0 :      6 :      0 : [ksoftirqd/0]
 0.0 :      7 :      0 : [migration/0]
 0.0 :      8 :      0 : [rcu_bh]
 0.0 :      9 :      0 : [rcu_sched]
 0.0 :     10 :      0 : [lru-add-drain]
 0.0 :     11 :      0 : [watchdog/0]
 0.0 :     13 :      0 : [kdevtmpfs]
 0.0 :     14 :      0 : [netns]
 0.0 :     15 :      0 : [khungtaskd]
 0.0 :     16 :      0 : [writeback]
 0.0 :     17 :      0 : [kintegrityd]
 0.0 :     18 :      0 : [bioset]
 0.0 :     19 :      0 : [bioset]
 0.0 :     20 :      0 : [bioset]
 0.0 :     21 :      0 : [kblockd]
 0.0 :     22 :      0 : [md]
 0.0 :     23 :      0 : [edac-poller]
 0.0 :     24 :      0 : [watchdogd]
 0.0 :     30 :      0 : [kswapd0]
 0.0 :     31 :      0 : [ksmd]
 0.0 :     32 :      0 : [khugepaged]
 0.0 :     33 :      0 : [crypto]
 0.0 :     41 :      0 : [kthrotld]
 0.0 :     43 :      0 : [kmpath_rdacd]
 0.0 :     44 :      0 : [kaluad]
 0.0 :     45 :      0 : [kpsmoused]
 0.0 :     47 :      0 : [ipv6_addrconf]
 0.0 :     60 :      0 : [deferwq]
 0.0 :     95 :      0 : [kauditd]
 0.0 :    233 :      0 : [ata_sff]
 0.0 :    234 :      0 : [nfit]
 0.0 :    235 :      0 : [mpt_poll_0]
 0.0 :    236 :      0 : [mpt/0]
 0.0 :    239 :      0 : [scsi_eh_0]
 0.0 :    241 :      0 : [scsi_tmf_0]
 0.0 :    245 :      0 : [scsi_eh_1]
 0.0 :    248 :      0 : [scsi_tmf_1]
 0.0 :    249 :      0 : [scsi_eh_2]
 0.0 :    250 :      0 : [scsi_tmf_2]
 0.0 :    253 :      0 : [kworker/u256:3]
 0.0 :    258 :      0 : [irq/16-vmwgfx]
 0.0 :    259 :      0 : [ttm_swap]
 0.0 :    279 :      0 : [bioset]
 0.0 :    280 :      0 : [xfsalloc]
 0.0 :    281 :      0 : [xfs_mru_cache]
 0.0 :    282 :      0 : [xfs-buf/sda3]
 0.0 :    283 :      0 : [xfs-data/sda3]
 0.0 :    284 :      0 : [xfs-conv/sda3]
 0.0 :    285 :      0 : [xfs-cil/sda3]
 0.0 :    286 :      0 : [xfs-reclaim/sda]
 0.0 :    287 :      0 : [xfs-log/sda3]
 0.0 :    288 :      0 : [xfs-eofblocks/s]
 0.0 :    289 :      0 : [xfsaild/sda3]
 0.0 :    290 :      0 : [kworker/0:1H]
 0.0 :    528 :      0 : [xfs-buf/sda1]
 0.0 :    531 :      0 : [xfs-data/sda1]
 0.0 :    532 :      0 : [xfs-conv/sda1]
 0.0 :    533 :      0 : [xfs-cil/sda1]
 0.0 :    534 :      0 : [xfs-reclaim/sda]
 0.0 :    535 :      0 : [xfs-log/sda1]
 0.0 :    536 :      0 : [xfs-eofblocks/s]
 0.0 :    537 :      0 : [xfsaild/sda1]
 0.0 :   1883 :      0 : [kworker/0:2]
 0.0 :   1910 :      0 : [kworker/0:0]
 0.0 :   1920 :      0 : [kworker/0:1]

​ 查看某个进程在哪个CPU上运行:

[root@centos7 ~]# ps -eo pid,args,psr
   PID COMMAND                     PSR
     1 /usr/lib/systemd/systemd --   0
     2 [kthreadd]                    0
     4 [kworker/0:0H]                0
     5 [kworker/u256:0]              0
     6 [ksoftirqd/0]                 0
     7 [migration/0]                 0
     8 [rcu_bh]                      0
     9 [rcu_sched]                   0
    10 [lru-add-drain]               0
    11 [watchdog/0]                  0
    13 [kdevtmpfs]                   0
    14 [netns]                       0
    15 [khungtaskd]                  0
    16 [writeback]                   0
    17 [kintegrityd]                 0
    18 [bioset]                      0
    19 [bioset]                      0
    20 [bioset]                      0
    21 [kblockd]                     0
    22 [md]                          0
    23 [edac-poller]                 0
    24 [watchdogd]                   0
    30 [kswapd0]                     0
    31 [ksmd]                        0
    32 [khugepaged]                  0
    33 [crypto]                      0
    41 [kthrotld]                    0
    43 [kmpath_rdacd]                0
    44 [kaluad]                      0
    45 [kpsmoused]                   0
    47 [ipv6_addrconf]               0
    60 [deferwq]                     0
    95 [kauditd]                     0
   233 [ata_sff]                     0
   234 [nfit]                        0
   235 [mpt_poll_0]                  0
   236 [mpt/0]                       0
   239 [scsi_eh_0]                   0
   241 [scsi_tmf_0]                  0
   245 [scsi_eh_1]                   0
   248 [scsi_tmf_1]                  0
   249 [scsi_eh_2]                   0
   250 [scsi_tmf_2]                  0
   253 [kworker/u256:3]              0
   258 [irq/16-vmwgfx]               0
   259 [ttm_swap]                    0
   279 [bioset]                      0
   280 [xfsalloc]                    0
   281 [xfs_mru_cache]               0
   282 [xfs-buf/sda3]                0
   283 [xfs-data/sda3]               0
   284 [xfs-conv/sda3]               0
   285 [xfs-cil/sda3]                0
   286 [xfs-reclaim/sda]             0
   287 [xfs-log/sda3]                0
   288 [xfs-eofblocks/s]             0
   289 [xfsaild/sda3]                0
   290 [kworker/0:1H]                0
   368 /usr/lib/systemd/systemd-jo   0
   399 /usr/lib/systemd/systemd-ud   0
   528 [xfs-buf/sda1]                0
   531 [xfs-data/sda1]               0
   532 [xfs-conv/sda1]               0
   533 [xfs-cil/sda1]                0
   534 [xfs-reclaim/sda]             0
   535 [xfs-log/sda1]                0
   536 [xfs-eofblocks/s]             0
   537 [xfsaild/sda1]                0
   910 /sbin/auditd                  0
   933 /usr/bin/dbus-daemon --syst   0
   935 /usr/lib/systemd/systemd-lo   0
   938 /usr/bin/VGAuthService -s     0
   939 /usr/bin/vmtoolsd             0
   940 /usr/lib/polkit-1/polkitd -   0
   942 /usr/sbin/abrtd -d -s         0
   943 /usr/bin/abrt-watch-log -F    0
   955 /usr/sbin/crond -n            0
   958 /sbin/agetty --noclear tty1   0
   998 /usr/bin/python2 -Es /usr/s   0
  1034 /usr/sbin/NetworkManager --   0
  1366 /usr/bin/python2 -Es /usr/s   0
  1367 /usr/sbin/sshd -D             0
  1370 /usr/sbin/rsyslogd -n         0
  1457 /usr/libexec/postfix/master   0
  1461 qmgr -l -t unix -u            0
  1621 sshd: root@pts/0              0
  1625 -bash                         0
  1852 pickup -l -t unix -u          0
  1883 [kworker/0:2]                 0
  1910 [kworker/0:0]                 0
  1920 [kworker/0:1]                 0
  1934 ps -eo pid,args,psr           0

9.2 pstree:显示进程状态树

9.2.1 命令详解

【命令星级】 ★★★★☆

【功能说明】

​ pstree命令以树形结构显示进程和进程之间的关系。

【语法格式】

pstree [option] [<PID>/<user>]
pstree [选项]	[进程号/用户]

说明:

​ 1)在pstree命令及后面的选项和进程号(用户)里,每个元素之间都至少要有一个空格。

​ 2)如果不指定进程的PID号,或者不指定用户名称,则会以init(CentOS 6)、systemd(CentOS 7)进程为根进程,显示系统的所有进程信息;若指定用户或PID,则将以用户或PID为根进程,显示用户或PID对应的所有进程。

【选项说明】

​ 表9-2针对该命令的参数选项进行了说明。

​ 表9-2 pstree命令的参数选项及说明
在这里插入图片描述

9.2.2 使用范例

​ **范例9-8:**显示进程树。

[root@centos7 ~]# pstree	#若不指定进程的PID号,或者不指定用户名称,则会以systemd进程为根进程,显示系统的所有进程信息。
systemd─┬─NetworkManager───2*[{
    
    NetworkManager}]
        ├─VGAuthService
        ├─abrt-watch-log
        ├─abrtd
        ├─agetty
        ├─auditd───{
    
    auditd}
        ├─crond
        ├─dbus-daemon───{
    
    dbus-daemon}
        ├─firewalld───{
    
    firewalld}
        ├─master─┬─pickup
        │        └─qmgr
        ├─polkitd───6*[{
    
    polkitd}]
        ├─rsyslogd───2*[{
    
    rsyslogd}]
        ├─sshd───sshd───bash───pstree
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{
    
    tuned}]
        └─vmtoolsd───{
    
    vmtoolsd}
        
[root@centos6 ~]# pstree
init-+-abrtd
     |-acpid
     |-atd
     |-auditd---{
    
    auditd}
     |-automount---4*[{
    
    automount}]
     |-certmonger
     |-crond
     |-cupsd
     |-dbus-daemon
     |-hald-+-hald-runner-+-hald-addon-acpi
     |      |             `-hald-addon-inpu
     |      `-{
    
    hald}
     |-master-+-pickup
     |        `-qmgr
     |-6*[mingetty]
     |-rpc.statd
     |-rpcbind
     |-rsyslogd---3*[{
     
     rsyslogd}]
     |-sshd---sshd---bash---pstree
     `-udevd---2*[udevd]        

​ **范例9-9:**显示指定用户的进程。

[root@centos7 ~]# yum install -y mariadb mariadb-server
[root@centos7 ~]# systemctl status mariadb
● mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
[root@centos7 ~]# systemctl start mariadb
[root@centos7 ~]# systemctl status mariadb
● mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2020-10-27 16:20:00 CST; 2s ago
  Process: 1807 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS)
  Process: 1723 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS)
 Main PID: 1806 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           ├─1806 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
           └─1968 /usr/libexec/mysqld --basedir=/usr --datadir=/v...

Oct 27 16:19:58 centos7 mariadb-prepare-db-dir[1723]: MySQL manua...
Oct 27 16:19:58 centos7 mariadb-prepare-db-dir[1723]: Please repo...
Oct 27 16:19:58 centos7 mariadb-prepare-db-dir[1723]: The latest ...
Oct 27 16:19:58 centos7 mariadb-prepare-db-dir[1723]: You can fin...
Oct 27 16:19:58 centos7 mariadb-prepare-db-dir[1723]: http://dev....
Oct 27 16:19:58 centos7 mariadb-prepare-db-dir[1723]: Consider jo...
Oct 27 16:19:58 centos7 mariadb-prepare-db-dir[1723]: https://mar...
Oct 27 16:19:59 centos7 mysqld_safe[1806]: 201027 16:19:59 mysqld...
Oct 27 16:19:59 centos7 mysqld_safe[1806]: 201027 16:19:59 mysqld...
Oct 27 16:20:00 centos7 systemd[1]: Started MariaDB database server.
Hint: Some lines were ellipsized, use -l to show in full.

[root@centos7 ~]# pstree mysql		#mysql是系统的用户名。
mysqld_safe───mysqld───18*[{
    
    mysqld}]	#该输出显示了mysql用户下对应的进程为mysql,并且mysql进程拥有18个线程。

[root@centos7 ~]# pstree -c -p mysql	#使用-c选项显示所有进程,包含子进程和父进程,使用-p选项显示进程的进程号。
mysqld_safe(1806)───mysqld(1968)─┬─{
    
    mysqld}(1972)
                                 ├─{
    
    mysqld}(1973)
                                 ├─{
    
    mysqld}(1974)
                                 ├─{
    
    mysqld}(1975)
                                 ├─{
    
    mysqld}(1976)
                                 ├─{
    
    mysqld}(1977)
                                 ├─{
    
    mysqld}(1978)
                                 ├─{
    
    mysqld}(1979)
                                 ├─{
    
    mysqld}(1980)
                                 ├─{
    
    mysqld}(1981)
                                 ├─{
    
    mysqld}(1982)
                                 ├─{
    
    mysqld}(1983)
                                 ├─{
    
    mysqld}(1984)
                                 ├─{
    
    mysqld}(1985)
                                 ├─{
    
    mysqld}(1986)
                                 ├─{
    
    mysqld}(1987)
                                 ├─{
    
    mysqld}(1995)
                                 └─{
    
    mysqld}(1996)

​ **范例9-10:**显示进程所属的用户。

[root@centos7 ~]# pstree -u	#使用-u选项显示进程对应的用户名称。
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─VGAuthService
        ├─abrt-watch-log
        ├─abrtd
        ├─agetty
        ├─auditd───{auditd}
        ├─crond
        ├─dbus-daemon(dbus)───{dbus-daemon}
        ├─firewalld───{firewalld}
        ├─master─┬─pickup(postfix)
        │        └─qmgr(postfix)
        ├─mysqld_safe(mysql)───mysqld───18*[{mysqld}]
        ├─polkitd(polkitd)───6*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─sshd───sshd───bash───pstree
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        └─vmtoolsd

[root@centos6 ~]# pstree -u
init-+-abrtd
     |-acpid
     |-atd
     |-auditd---{auditd}
     |-automount---4*[{automount}]
     |-certmonger
     |-crond
     |-cupsd
     |-dbus-daemon(dbus)
     |-hald(haldaemon)-+-hald-runner(root)-+-hald-addon-acpi(haldae+
     |                 |                   `-hald-addon-inpu
     |                 `-{hald}
     |-master-+-pickup(postfix)
     |        `-qmgr(postfix)
     |-6*[mingetty]
     |-rpc.statd(rpcuser)
     |-rpcbind(rpc)
     |-rsyslogd---3*[{rsyslogd}]
     |-sshd---sshd---bash---pstree
     `-udevd---2*[udevd]

猜你喜欢

转载自blog.csdn.net/qq_25599925/article/details/126202382