程序管理-ps、top、pstree、kill、killall
1、程序的观察-ps
常用:一个是只能查阅自己 bash 程序的‘ ps -l ’,一个则是可以查阅所有系统运作的程序‘ ps auxf ’。
www.zhishiwu.com
[root@www ~]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 13639 13637 0 75 0 - 1287 wait pts/1 00:00:00 bash
4 R 0 13700 13639 0 77 0 - 1101 - pts/1 00:00:00 ps
主要含义说明:
F:代表这个程序旗标 (process flags),说明这个程序的总结权限,常见号码有:
若为 4 表示此程序的权限为 root ;
若为 1 则表示此子程序仅进行复制(fork)而没有实际执行(exec)。
www.zhishiwu.com
S:代表这个程序的状态 (STAT),主要的状态有:
R (Running):该程式正在运作中;
S (Sleep):开程式目前正在睡眠状态(idle),但可以被唤醒(signal)。
D :不可被唤醒的睡眠状态,通常这支程式可能在等待 I/O 的情况(ex>列印)
T :停止状态(stop),可能是在工作控制(背景暂停)或除错 (traced) 状态;
Z (Zombie):僵尸状态,程序已经终止但却无法被移除至记忆体外。
C:代表 CPU 使用率,单位为百分比;
PRI/NI:Priority/Nice 的缩写,代表此程序被 CPU 所执行的优先顺序,数值越小代表该程序越快被 CPU 执行。
ADDR/SZ/WCHAN:都与记忆体有关,ADDR 是 kernel function,指出该程序在记忆体的哪个部分,如果是个 running 的程序,一般就会显示‘ - ’ / SZ 代表此程序用掉多少记忆体 / WCHAN 表示目前程序是否运作中,同样的, 若为 - 表示正在运作中。
TIME:使用掉的 CPU 时间,注意,是此程序实际花费 CPU 运作的时间,而不是系统时间;
ps aux的列有些不太一样,VSZ :该 process 使用掉的虚拟记忆体量 (Kbytes) ,RSS :该 process 占用的固定的记忆体量 (Kbytes)
2、动态观察程序的变化-top
[root@www ~]# top [-d 数字] | top [-bnp]
选项与参数:
-d :后面可以接秒数,就是整个程序画面更新的秒数。预设是 5 秒;
-b :以批次的方式执行 top ,还有更多的参数可以使用喔!
通常会搭配资料流重导向来将批次的结果输出成为档案。
-n :与 -b 搭配,意义是,需要进行几次 top 的输出结果。
-p :指定某些个 PID 来进行观察监测而已。
在 top 执行过程当中可以使用的按键指令:
? :显示在 top 当中可以输入的按键指令;
常用-P :以 CPU 的使用资源排序显示;
M :以 Memory 的使用资源排序显示;
N :以 PID 来排序喔!
T :由该 Process 使用的 CPU 时间累积 (TIME+) 排序。
k :给予某个 PID 一个讯号 (signal)
r :给予某个 PID 重新制订一个 nice 值。
q :离开 top 软体的按键。
3、显示程序树-pstree
[root@www ~]# pstree [-A|U] [-up]
选项与参数:
-A :各程序树之间的连接以 ASCII 字元来连接;
-U :各程序树之间的连接以万国码的字元来连接。在某些终端介面下可能会有错误;
常用:-p :并同时列出每个 process 的 PID;
常用:-u :并同时列出每个 process 的所属帐号名称。
4、kill -signal PID或%工作号
signal主要有1-重启,9-强制关,15-正常关
5、killall -signal 指令名称
[root@www ~]# killall [-iIe] [command name]
选项与参数:
-i :interactive 的意思,互动式的,若需要删除时,会出现提示字元给使用者;
-e :exact 的意思,表示‘后面接的 command name 要一致’,但整个完整的指令
不能超过 15 个字元。
-I :指令名称(可能含参数)忽略大小写。