1、程序的观察-ps
常用:一个是只能查阅自己 bash 程序的‘ ps -l ’,一个则是可以查阅所有系统运作的程序‘ ps auxf ’。

 ps aux 列出目前所有的正在内存当中的程序

[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)。

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]

pstree -pua  显示带pid uid 及程序命令完整参数

选项与参数:
-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  :指令名称(可能含参数)忽略大小写。