浅谈linux下进程查看,管理工具

  1.pstree 显示进程树。

    显示各个进程之间的关系

[root@test ~]# pstree
init─┬─abrtd
     ├─acpid
     ├─atd
     ├─console-kit-dae───63*[{console-kit-da}]
     ├─crond
     ├─cupsd
     ├─dbus-daemon
     ├─dhclient
     ├─fcoemon
     ├─hald─┬─hald-runner─┬─hald-addon-acpi
     │      │             └─hald-addon-inpu
     │      └─{hald}
     ├─lldpad
     ├─login───bash
     ├─master─┬─pickup
     │        └─qmgr
     ├─5*[mingetty]
     ├─rpcbind
     ├─rsyslogd───3*[{rsyslogd}]
     ├─sshd─┬─sshd───2*[bash]
     │      └─sshd───bash───pstree
     └─udevd───2*[udevd]

  2.ps 进程状态查看工具 

     ps aux        

  a 与终端相关的进程

      x 与终端无关的进程

      u 显示以用户为中心组织进程状态信息

[root@test ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
              VSZ 虚拟内存集 
			     RSS 常住内存集不能被交换
			        STAT 进程状态
			             R running
					    S 可中断睡眠
					    D 不可中断睡眠
					    T 停止态
					    Z 僵尸态
					    + 前台进程
					    l 多线程进程
					    N 低优先级进程
					    < 高优先级进程
					    s session leader
root       1584  0.0  0.1 251200  1692 ?        Sl   18:37   0:00 /sbin/rsyslogd -i /var/run/syslogd.pid -c 5
root       1614  0.0  0.0  18308   724 ?        Ss   18:37   0:06 irqbalance --pid=/var/run/irqbalance.pid
rpc        1630  0.0  0.0  18976   904 ?        Ss   18:37   0:00 rpcbind
dbus       1662  0.0  0.1  21712  1248 ?        Ss   18:38   0:02 dbus-daemon --system
root       1673  0.0  0.6 101196  6424 ?        Ssl  18:38   0:01 NetworkManager --pid-file=/var/run/NetworkManager/NetworkManager.pid
root       1677  0.0  0.2  58136  2432 ?        S    18:38   0:00 /usr/sbin/modem-manager
rpcuser    1694  0.0  0.1  23348  1372 ?        Ss   18:38   0:00 rpc.statd
root       1726  0.0  0.3 189408  3780 ?        Ss   18:38   0:00 cupsd -C /etc/cups/cupsd.conf
root       1753  0.0  0.0  44988   688 ?        Ss   18:38   0:00 /usr/sbin/wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -B -u -f /var/log/w
root       1791  0.0  0.0   4080   652 ?        Ss   18:38   0:00 /usr/sbin/acpid
68         1801  0.0  0.5  39352  5584 ?        Ssl  18:38   0:00 hald
root       1802  0.0  0.1  20400  1180 ?        S    18:38   0:00 hald-runner
root       1847  0.0  0.1  22520  1088 ?        S    18:38   0:00 hald-addon-input: Listening on /dev/input/event2 /dev/input/event0
68         1854  0.0  0.1  18008  1028 ?        S    18:38   0:00 hald-addon-acpi: listening on acpid socket /var/run/acpid.socket
root       1875  0.0  0.1 386140  1924 ?        Ssl  18:38   0:00 automount --pid-file /var/run/autofs.pid
root       1904  0.0  0.1  66688  1272 ?        Ss   18:38   0:00 /usr/sbin/sshd
root       2018  0.0  0.3  81328  3848 ?        Ss   18:38   0:00 /usr/libexec/postfix/master
postfix    2039  0.0  0.3  81592  3868 ?        S    18:38   0:00 qmgr -l -t fifo -u
root       2045  0.0  0.1 114644  1124 ?        Ss   18:38   0:00 /usr/sbin/abrtd
root       2057  0.0  0.1 117336  1272 ?        Ss   18:38   0:00 crond
root       2071  0.0  0.0  21576   516 ?        Ss   18:38   0:00 /usr/sbin/atd
root       2097  0.0  0.2  79520  2980 ?        Ss   18:38   0:00 login -- root     
root       2099  0.0  0.0   4064   540 tty2     Ss+  18:38   0:00 /sbin/mingetty /dev/tty2
root       2101  0.0  0.0   4064   540 tty3     Ss+  18:38   0:00 /sbin/mingetty /dev/tty3
root       2103  0.0  0.0   4064   540 tty4     Ss+  18:38   0:00 /sbin/mingetty /dev/tty4
root       2105  0.0  0.0   4064   540 tty5     Ss+  18:38   0:00 /sbin/mingetty /dev/tty5
root       2107  0.0  0.0   4064   540 tty6     Ss+  18:38   0:00 /sbin/mingetty /dev/tty6
root       2113  0.0  0.3 2085036 3428 ?        Sl   18:38   0:00 /usr/sbin/console-kit-daemon --no-daemon
root       2180  0.0  0.1 108336  1792 tty1     Ss+  18:38   0:00 -bash
root       2859  0.0  0.4  52772  4440 ?        S    19:47   0:01 /usr/libexec/polkit-1/polkitd
root       3314  0.0  0.0  10824   880 ?        S<   19:51   0:00 /sbin/udevd -d
root       3315  0.0  0.0  10824   880 ?        S<   19:51   0:00 /sbin/udevd -d
postfix    3597  0.0  0.3  81408  3820 ?        S    21:58   0:00 pickup -l -t fifo -u
named      5494  0.1  1.5 385320 15576 ?        Ssl  23:04   0:02 /usr/sbin/named -u named
root       5511  0.0  0.4 100448  4424 ?        Ss   23:04   0:00 sshd: root@pts/0 
root       5515  0.0  0.1 108340  1772 pts/0    Ss+  23:04   0:00 -bash
root       5983  0.2  0.1   9120  1564 ?        S    23:19   0:00 /sbin/dhclient -d -4 -sf /usr/libexec/nm-dhcp-client.action -pf /var/run/dhclient-eth0.
root       6148  0.4  0.4 100448  4440 ?        Rs   23:19   0:00 sshd: root@pts/1 
root       6151  0.1  0.1 108340  1772 pts/1    Ss   23:19   0:00 -bash
root       6181  2.0  0.1 110236  1124 pts/1    R+   23:21   0:00 ps aux

    ps -ef 

      e 显示所有进程

       f 显示完整格式进程

[root@test ~]# ps -ef
rpc        1630      1  0 18:37 ?        00:00:00 rpcbind
dbus       1662      1  0 18:38 ?        00:00:02 dbus-daemon --system
root       1673      1  0 18:38 ?        00:00:01 NetworkManager --pid-file=/var/run/NetworkManager/NetworkManager.pid
root       1677      1  0 18:38 ?        00:00:00 /usr/sbin/modem-manager
rpcuser    1694      1  0 18:38 ?        00:00:00 rpc.statd
root       1726      1  0 18:38 ?        00:00:00 cupsd -C /etc/cups/cupsd.conf
root       1753      1  0 18:38 ?        00:00:00 /usr/sbin/wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -B -u -f /var/log/wpa_supplicant.lo
root       1791      1  0 18:38 ?        00:00:00 /usr/sbin/acpid
68         1801      1  0 18:38 ?        00:00:00 hald
root       1802   1801  0 18:38 ?        00:00:00 hald-runner
root       1847   1802  0 18:38 ?        00:00:00 hald-addon-input: Listening on /dev/input/event2 /dev/input/event0
68         1854   1802  0 18:38 ?        00:00:00 hald-addon-acpi: listening on acpid socket /var/run/acpid.socket
root       1875      1  0 18:38 ?        00:00:00 automount --pid-file /var/run/autofs.pid
root       1904      1  0 18:38 ?        00:00:00 /usr/sbin/sshd
root       2018      1  0 18:38 ?        00:00:00 /usr/libexec/postfix/master
postfix    2039   2018  0 18:38 ?        00:00:00 qmgr -l -t fifo -u
root       2045      1  0 18:38 ?        00:00:00 /usr/sbin/abrtd
root       2057      1  0 18:38 ?        00:00:00 crond
root       2071      1  0 18:38 ?        00:00:00 /usr/sbin/atd
root       2097      1  0 18:38 ?        00:00:00 login -- root     
root       2099      1  0 18:38 tty2     00:00:00 /sbin/mingetty /dev/tty2
root       2101      1  0 18:38 tty3     00:00:00 /sbin/mingetty /dev/tty3
root       2103      1  0 18:38 tty4     00:00:00 /sbin/mingetty /dev/tty4
root       2105      1  0 18:38 tty5     00:00:00 /sbin/mingetty /dev/tty5
root       2107      1  0 18:38 tty6     00:00:00 /sbin/mingetty /dev/tty6
root       2113      1  0 18:38 ?        00:00:00 /usr/sbin/console-kit-daemon --no-daemon
root       2180   2097  0 18:38 tty1     00:00:00 -bash
root       2859      1  0 19:47 ?        00:00:01 /usr/libexec/polkit-1/polkitd
root       3314    497  0 19:51 ?        00:00:00 /sbin/udevd -d
root       3315    497  0 19:51 ?        00:00:00 /sbin/udevd -d
postfix    3597   2018  0 21:58 ?        00:00:00 pickup -l -t fifo -u
named      5494      1  0 23:04 ?        00:00:02 /usr/sbin/named -u named
root       5511   1904  0 23:04 ?        00:00:00 sshd: root@pts/0 
root       5515   5511  0 23:04 pts/0    00:00:00 -bash
root       5983   1673  0 23:19 ?        00:00:00 /sbin/dhclient -d -4 -sf /usr/libexec/nm-dhcp-client.action -pf /var/run/dhclient-eth0.pid -lf /var/lib
root       6148   1904  0 23:19 ?        00:00:00 sshd: root@pts/1 
root       6151   6148  0 23:19 pts/1    00:00:00 -bash
root       6178   6151 35 23:20 pts/1    00:00:00 ps -ef
[root@test ~]#

注意:Linux系统各进程的相关信息均保存在/pro/PID目录下的各文件中

  3.top    

    排序 按P:以占据CPU百分比

       按M:以占据内存百分比

        按T:累计占据CPU时长  

[root@test ~]# top
top - 23:20:16 up  4:42,  3 users,  load average: 0.06, 0.03, 0.00
Tasks: 165 total,   1 running, 164 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.1%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1004352k total,   409576k used,   594776k free,    53076k buffers
Swap:  2097148k total,        0k used,  2097148k free,   197528k cached

   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                   
  6177 root      20   0 15036 1264  928 R  0.7  0.1   0:00.07 top                                                                                        
     1 root      20   0 19364 1536 1224 S  0.0  0.2   0:01.48 init                                                                                       
     2 root      20   0     0    0    0 S  0.0  0.0   0:00.01 kthreadd                                                                                   
     3 root      RT   0     0    0    0 S  0.0  0.0   0:00.02 migration/0                                                                                
     4 root      20   0     0    0    0 S  0.0  0.0   0:00.02 ksoftirqd/0                                                                                
     5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/0                                                                                  
     6 root      RT   0     0    0    0 S  0.0  0.0   0:00.04 watchdog/0                                                                                 
     7 root      RT   0     0    0    0 S  0.0  0.0   0:00.59 migration/1                                                                                
     8 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/1                                                                                  
     9 root      20   0     0    0    0 S  0.0  0.0   0:00.07 ksoftirqd/1                                                                                
    10 root      RT   0     0    0    0 S  0.0  0.0   0:00.04 watchdog/1                                                                                 
    11 root      RT   0     0    0    0 S  0.0  0.0   0:00.05 migration/2                                                                                
    12 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/2                                                                                  
    13 root      20   0     0    0    0 S  0.0  0.0   0:00.03 ksoftirqd/2                                                                                
    14 root      RT   0     0    0    0 S  0.0  0.0   0:00.03 watchdog/2                                                                                 
    15 root      RT   0     0    0    0 S  0.0  0.0   0:00.04 migration/3                                                                                
    16 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/3                                                                                  
    17 root      20   0     0    0    0 S  0.0  0.0   0:00.02 ksoftirqd/3                                                                                
    18 root      RT   0     0    0    0 S  0.0  0.0   0:00.03 watchdog/3                                                                                 
    19 root      20   0     0    0    0 S  0.0  0.0   0:01.20 events/0                                                                                   
    20 root      20   0     0    0    0 S  0.0  0.0   0:02.16 events/1                                                                                   
    21 root      20   0     0    0    0 S  0.0  0.0   0:16.68 events/2                                                                                   
    22 root      20   0     0    0    0 S  0.0  0.0   0:12.25 events/3                                                                                   
    23 root      20   0     0    0    0 S  0.0  0.0   0:00.00 cgroup                                                                                     
    24 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khelper                                                                                    
    25 root      20   0     0    0    0 S  0.0  0.0   0:00.00 netns                                                                                      
    26 root      20   0     0    0    0 S  0.0  0.0   0:00.00 async/mgr                                                                                  
    27 root      20   0     0    0    0 S  0.0  0.0   0:00.00 pm                                                                                         
    28 root      20   0     0    0    0 S  0.0  0.0   0:00.14 sync_supers                                                                                
    29 root      20   0     0    0    0 S  0.0  0.0   0:00.14 bdi-default                                                                                
    30 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kintegrityd/0                                                                              
    31 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kintegrityd/1                                                                              
    32 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kintegrityd/2

  4.vmstat 

[root@test ~]# vmstat 2 10   #每2秒刷新一次,一共刷新10次
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 r:等待运行进程的个数
 b:处于不可中断睡眠态的进程个数(被阻塞的队列长度)
 si 数据进入swap中的数据速率kb/s
 so 数据离开swap中的数据速率kb/s
 bi 从块设备读入数据速率
 bo 从块设备输出数据速率
 in 中断速率
 cs 每秒上下文切换次数
 us 用户空间占据比例
 sy 内核空间占据的比例
 id 空闲
 wa 等待io完成
 1  0      0 1486576  80572 344080    0    0     1     1    6    5  0  0 100  0  0	
 0  0      0 1486568  80572 344080    0    0     0     0   34   18  0  0 100  0  0	
 0  0      0 1486568  80580 344080    0    0     0     6   28   27  0  0 100  0  0	
 0  0      0 1486568  80580 344080    0    0     0     0   22   19  0  0 100  0  0	
 0  0      0 1486568  80580 344080    0    0     0     2   29   28  0  0 100  0  0	
 0  0      0 1486568  80580 344080    0    0     0     0   23   14  0  0 100  0  0	
 0  0      0 1486568  80580 344080    0    0     0     2   27   26  0  0 100  0  0	
 0  0      0 1486568  80580 344080    0    0     0     0   22   16  0  0 100  0  0	
 0  0      0 1486568  80580 344080    0    0     0     0   26   24  0  0 100  0  0	
 0  0      0 1486568  80580 344080    0    0     0     0   24   18  0  0 100  0  0	

  5.glances

-h 查看帮助

-b 以byte为单位显示

-d 关闭磁盘I/O模块

-f /path/to/file 设定输入文件位置

-o {html|csv} 输出格式

-m 禁用mount模块

-n 禁用网络模块

        C/S模式下运行glances

    服务器模式 glances -s -B IPADDR 监听在本机的地址

客户端模式 glances -c IPADDR 服务器的地址

Linux进程查看,管理工具_第1张图片   6.dstat    

-c: 显示cpu相关信息;

    -C #,#,..|total 显示具体某个核心信息

-d: 只显示disk相关信息;

    -D /device|total 显示固定设备的I/O或者所有

-g:显示page相关统计数据;

-m: 显示memory相关统计数据;

-n: 显示network相关统计数据;

-p: 显示process相关统计数据;

-r: 显示io请求相关的统计数据;

-s: 显示swapped相关的统计数据;

--top-cpu:显示最占用CPU的进程;

--top-io: 显示最占用io的进程;

--top-mem: 显示最占用内存的进程;

--top-lantency: 显示延迟最大的进程;

[root@test-3 ~]# dstat
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
  0   0 100   0   0   0|  13k 6108B|   0     0 |   0     0 |  29    26 
  0   0 100   0   0   0|   0     0 |  60B  826B|   0     0 |  21    17 
  0   0  99   0   0   0|   0   108k|  60B  346B|   0     0 |  31    28 
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  29    24 
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  39    40 
  0   0 100   0   0   0|   0     0 | 150B  400B|   0     0 |  21    21 
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  22    19 
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  24    22 
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  21    19 
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  18    19 
  0   0 100   0   0   0|   0     0 | 120B  346B|   0     0 |  26    26 
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  18    17 
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  25    21 
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  26    22 
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  25    22 
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  21    20 
  0   0 100   0   0   0|   0     0 | 120B  388B|   0     0 |  29    28 
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  17    21 
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  24    21 
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  19    19 
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  20    18 
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  15    17 
  0   0 100   0   0   0|   0     0 | 106B  400B|   0     0 |  27    24 
  0   0  99   0   0   0|   0     0 |  60B  346B|   0     0 |  26    23 
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  22    20 
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  19    21 
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  20    17 
  0   0 100   0   0   0|   0   136k|  60B  346B|   0     0 |  20    25 
  0   0 100   0   0   0|   0     0 |  60B  346B|   0     0 |  25    29


进程管理命令  

   kill命令 向进程发送控制信号,以实现对进程管理

显示当前系统可用信号 kill -l

常用信号

  1.SIGHUP 不关闭进程而重读配置文件

  2.SIGINT 终止正在运行的进程 相当于ctrl+c

  9.SIGKILL 杀死正在运行的进程

        15.SIGTERM 终止正在运行的进程

  18.SIGCONT 终止停止态

  19.SIGSTOP 处于停止态

指定信号的方法

  1.信号的数字标识 1,2,9

  2.信号的完整名称 SIGHUP

  3.信号的简写名称 HUP

向进程发信号

  kill [-SIGNAL] PID

终止“名称”之下的所有进程

  killall [-SIGNAL] program

Linux的作业控制 jobs

  前台作业:通过终端启动,且启动后一直占据终端

  后台作业:可以通过终端启动,但启动后即转入后台运行(释放终端)

  让作业在后台运行

1.运行中的作业 ctrl+z

2.尚未启动的作业 command &

注意:此类作业虽然被送往后台运行,但是其依然与终端相关,终端断开,进程结束。如果希望送往后台后,剥离与终端的关系 nohup command &

  查看所有作业:jobs

  作业控制

 fg [%#] 把指定后台作业调回前台

 bg [%#] 让送往后台的作业在后台继续运行

 kill [#] 终止作业

进程优先级:

静态优先级 100-139

进程默认启动时的nice值为0,优先级为120

renice -n 2 pid 把优先级增加到2

查看nice值 ps axo pid,comm,ni

sar tstar iostat iftop