二十八、任务进程(下)

king's blog
上一节,我们了解了如何在后台执行任务等相关内容,本节我们继续了解任务进程的查看,比如如何查看静态进程和动态进程等,主要内容如下:
一、静态进程的查看
二、动态进程的查看

一、静态进程的查看

查看静态进程常用的是ps命令,主要参数如下:
-l : 仅查询自己bash相关的程序
aux:查询系统所有的相关程序
-x : 查询进程名,可结合grep使用

例子1:ps -l

1
2
3
4
5
6
7
8
9
10
weblogic@ETS157:~> ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1001 13367 13366  0  80   0 -  3494 wait   pts/0    00:00:00 bash
0 R  1001 14140 13367  0  80   0 -  1179 -      pts/0    00:00:00 ps

ETS157:~ # ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0 14235 13367  0  80   0 - 13580 wait   pts/0    00:00:00 su
4 S     0 14236 14235  0  80   0 -  3493 wait   pts/0    00:00:00 bash
4 R     0 14269 14236  0  80   0 -  1179 -      pts/0    00:00:00 ps

说明:
1、F : 代表这个程序的旗标(process flags),表示这个程序的权限,常见的有4(表示此程序的权限为root),1(表示此子程序仅进行复制(fork)而没有实际进行(exec)
2、S : 代表这个程序的状态(STAT),主要的状态如下:
—-R(Running):表示该程序正在运行中
—-S(Sleep): 表示该程序正处于睡眠状态,但可以被唤醒
—-D: 表示不可被唤醒的睡眠状态,通常是在等待I/O的情况
—-T: 表示停止状态(stop)
—-Z:表示僵尸状态,程序已终止但无法被移除至内存外
3、UID:User ID
4、PID:进程ID
5、PPID:父进程ID
6、C :代表CPU使用率,单位%
—-PRI:代表被执行的优先级,数字越小,优先级越高,越快被执行
—-NI : 同PRI
—-ADDR:与内存相关的参数,ADDR是kernel function,表示该程序在内存的哪个部分,如果是在running的程序,一般就会显示-
7、SZ:与内存相关的参数,代表此程序用掉多少内存
8、WCHAN:与内存相关的参数,表示目前程序是否运作中,若为-表示正在运作中
9、TTY: 登入者的终端机位置,若为进程登录则使用动态终端接口 (pts/n)
10、TIME:使用掉的CPU时间,注意,是此程序实际花费CPU运行时间,而不是系统时间
11、CMD:command的意思

例子2:ps aux

1
2
3
4
5
ETS157:/opt/project/test # ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  10528   684 ?        Ss    2016   3:27 init [5]
root         2  0.0  0.0      0     0 ?        S     2016   0:01 [kthreadd]
root         3  0.0  0.0      0     0 ?        S     2016  76:31[ksoftirqd/0]

例子3:ps -x

1
2
3
4
5
6
7
8
9
10
11
12
#1.查询sh的进程
weblogic@ETS157:~> ps -x | grep \\.sh
21625 pts/4    Ss+    0:00 /bin/sh /weblogic/Desktop/start_script/4_startREServer.sh
21626 pts/4    S+     0:00 /bin/sh ./startREServer.sh
21665 pts/5    Ss+    0:00 /bin/sh /weblogic/Desktop/start_script/5_startAMLServer.sh
21666 pts/5    S+     0:00 /bin/sh ./start.sh
21729 pts/6    Ss+    0:00 /bin/sh /weblogic/Desktop/start_script/6_startSimulator.sh
21743 pts/6    S+     0:00 /bin/sh ./simulator.sh

#2.kill掉simulator.sh进程(PID=21743)
weblogic@ETS157:~> kill -9 21743
weblogic@ETS157:~>

二、动态进程的查看

上面的ps命令是查看静态进程,如果想动态查看,可使用top命令
命令格式:
top -d 数字 -bnpu

参数说明:
-d : 后面接数字,代表秒数,默认为5秒。表示显示结果多少秒更新一次
-b : 表示以块的方式保存,通常在需要将结果保存到一个文件时用到
-n : 后面接数字,表示监控多少次。比如top -n 2,表示只监控2次
-p : P代表PID,表示监控指定的PID
-u :u代表user,表示监控指定user的进程,比如: top -u oracle

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#1.不带任何参数
top - 13:42:14 up 116 days,  5:00, 11 users,  load average: 0.04, 0.03, 0.05
Tasks: 203 total,   1 running, 202 sleeping,   0 stopped,   0 zombie
Cpu(s):  2.0%us,  0.7%sy,  0.0%ni, 97.3%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   5992984k total,  5857480k used,   135504k free,    62200k buffers
Swap:  2103292k total,  1016988k used,  1086304k free,  2003524k cached
 Unknown command - try 'h' for help
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 4275 oracle    -2   0 1845m  13m  13m S 11.0  0.2  17058:05 oracle
 4285 oracle    20   0 1848m  28m  24m S  0.3  0.5 166:52.37 oracle
 4293 oracle    20   0 1845m  40m  40m S  0.3  0.7  65:54.69 oracle
21453 weblogic  20   0 1761m 152m 2504 S  0.3  2.6  73:35.15 java
21528 weblogic  20   0 3535m 1.5g 2256 S  0.3 27.1  57:02.08 java
21669 weblogic  20   0 1745m  45m 1884 S  0.3  0.8  68:17.39 java
22359 weblogic  20   0  8908 1184  808 R  0.3  0.0   0:00.08 top
    1 root      20   0 10528  684  648 S  0.0  0.0   3:28.07 init
    2 root      20   0     0    0    0 S  0.0  0.0   0:01.29 kthreadd
    3 root      20   0     0    0    0 S  0.0  0.0  76:35.97 ksoftirqd/0
    5 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kworker/u:0
    6 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0

解释:

第一行:top – 13:42:14 up 116 days, 5:00, 11 users, load average: 0.04, 0.03, 0.05
是对系统整体运行的汇总,如上表示系统时间是13:42:14,已运行116天零5个小时,共11个在线用户,同时1,5,15分钟的平均负载分别为0.04,0.03,0.05

第二行:Tasks: 203 total, 1 running, 202 sleeping, 0 stopped, 0 zombie
是对系统进程的汇总统计,如上表示此时系统有203个task,其中1个正在运行,202处于睡眠状态,0个停止,0个僵尸进程

第三行:Cpu(s): 2.0%us, 0.7%sy, 0.0%ni, 97.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
是对系统CPU的整体负载统计

第四行:Mem: 5992984k total, 5857480k used, 135504k free, 62200k buffers
是对系统内存的整体统计,单位是k

第五行:Swap: 2103292k total, 1016988k used, 1086304k free, 2003524k cached
是对系统虚拟内存的整体统计,单位也是k,已使用的虚拟内存(used)尽量小,如果太大,则表示物理内存严重不足

其余列表个字段的含义如下:
PID———>表示进程ID
USER——–>表示进程使用的用户
PR———->表示程序的优先级顺序,越小优先级越高
NI———->与PR相关,也是越小优先级越高
%CPU——–>CPU的使用率
%MEM——–>内存的使用率
TIME+——->CPU使用时间的累加
COMMAND—–>运行的命令

附注
在top显示过程中,可以使用如下命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  Z,B       Global: 'Z' change color mappings; 'B' disable/enable bold
  l,t,m     Toggle Summaries: 'l' load avg; 't' task/cpu stats; 'm' mem info
  1,I       Toggle SMP view: '1' single/separate states; 'I' Irix/Solaris mode

  f,o     . Fields/Columns: 'f' add or remove; 'o' change display order
  F or O  . Select sort field
  <,>     . Move sort field: '<' next col left; '>' next col right
  R,H     . Toggle: 'R' normal/reverse sort; 'H' show threads
  c,i,S   . Toggle: 'c' cmd name/line; 'i' idle tasks; 'S' cumulative time
  x,y     . Toggle highlights: 'x' sort field; 'y' running tasks
  z,b     . Toggle: 'z' color/mono; 'b' bold/reverse (only if 'x' or 'y')
  u       . Show specific user only
  n or #  . Set maximum tasks displayed

  k,r       Manipulate tasks: 'k' kill; 'r' renice
  d or s    Set update interval
  W         Write configuration file
  q         Quit
          ( commands shown with '.' require a visible task display window )
Press 'h' or '?' for help with Windows,
Tags:
文 / 甲乙丙丁
LEAVE A REPLY

loading