ps:将某个时间点的进程运行情况选取下来
转载请出自出处:http://eksliang.iteye.com/admin/blogs/2119469
http://eksliang.iteye.com
ps 这个命令的man page 不是很好查阅,因为很多不同的Unix都使用这儿ps来查阅进程的状态,为了要符合不同版本的需求,所以这个man page写的非常庞大。所以一般我会选择记住两个命名组合,一个是"ps -l" 查看自己bash程序的进程,"ps aux"查看系统所以运行程序的进程
ps -l 仅查看自己的bash相关的进程
[root@localhost test]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 2175 2171 0 80 0 - 1315 - pts/0 00:00:00 bash
0 S 0 2212 1 0 80 0 - 190946 - pts/0 00:00:53 java
4 R 0 6991 2175 0 80 0 - 1219 - pts/0 00:00:00 ps
各个列的含义:
F:代表这个进程标志,说明这个进程的权限,常见的号码有
1、若为4表示此进程的权限为root.
2、若为0则表示此子进程仅可进行复制而无法实际执行
S:代表这个进程的状态,主要的状态有
1、R(running):该进程正在进行中。
2、S(sleep):该进程目前正在睡眠状态,但是可以被唤醒。
3、D:不可被唤醒的睡眠状态,通常这个进程可能在等待I/O的情况
4、T(stop):停止状态,可能是后台暂停(Ctrl+Z),或者执行出错
5、Z(zombie):“僵尸状态”,进程已经终止但却无法删除至内存外
UID、PID、PPID:分别表示该进程被UID所拥有、进程的PID号码、此进程父进程的PID号码。
C:代表CPU的使用率,单位为百分比。
PRI、NI:代表此进程被CPU执行的优先级,数字越小代表该进程越快被CPU执行。
SZ:代表此进程用掉了多少内存。
TIME:使用掉的CPU时间,注意,是吃进程实际花费CPU的运行时间,而不是系统时间。
CMD:触发该进程的命令为何。
查看系统所有进程:ps aux
[root@localhost test]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 2900 1444 ? Ss Dec14 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S Dec14 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Dec14 0:00 [migration/0]
root 4 0.0 0.0 0 0 ? S Dec14 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S Dec14 0:00 [migration/0]
root 6 0.0 0.0 0 0 ? S Dec14 0:00 [watchdog/0]
root 7 0.0 0.0 0 0 ? S Dec14 0:01 [events/0]
.......!
从上可以发现,ps -l与 ps aux显示的项目并不相同!在ps aux显示的项目中,各个字段的意义如下所示:
USER:该进程由那个用户创建;
PID:该进程进程的标识符;
%CPU:该进程使用掉的CPU的百分比;
%MEM:该进程所占用的物理内存百分比;
VSZ:该进程使用掉的虚拟内存量(KB);
RSS:该进程占用的固定的内存量(KB);
TTY:该进程是在那个终端机上面运行,若与终端机无关则显示?,tty1~tty6是本机上面的登录者程序,若为pts/0这表示为由网络连接进主机的进程。
STAT:该进程目前的状态,跟ps -l 的S标识相同(R/S/T/Z);
START:该进程被触发启动的时间;
TIMe:该进程实际使用CPU的运行时间;
COMMAND:该进程的实际命令;