想显示系统运行的程序时可以用ps指令
ps指令语法:
[root@www ~]# ps aux <==观察系统所有的程序数据
[root@www ~]# ps -lA <==也是能够观察所有系统的数据
[root@www ~]# ps axjf <==连同部分程序树状态
选项与参数:
-A :所有的 process 均显示出来,与 -e 具有同样的效用;
-a :不与 terminal 有关的所有 process ;
-u :有效使用者 (effective user) 相关的 process ;
-x :通常与 a 这个参数一起使用,可列出较完整信息。
输出格式规划:
-l :较长、较详细的将该 PID 的的信息列出;
-j :工作的格式 (jobs format)
-f :做一个更为完整的输出。
常用ps指令结果列表说明:
1)ps -l /*显示目前属于您自己这次登入的 PID 与相关信息列示出来(只与自己的 bash 有关)*/
[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:flag,说明这个程序的总结权限,常见号码有4(权限为root)、1(子程序仅进行复制(fork)而没有实际执行(exec));
S:status,主要状态有:
R【Running:该程序正在运作中】
S【Sleep:该程序目前正在睡眠状态(idle),但可以被唤醒(signal)】;
D【不可被唤醒的睡眠状态,通常这支程序可能在等待 I/O 的情况(ex>打印)】;
T【stop:该程序可能是在工作控制(背景暂停)或除错 (traced) 状态】;
Z【Zombie:僵尸状态,程序已经终止但却无法被移除至内存外】
UID/PID/PPID:此程序被该 UID 所拥有/程序的 PID 号码/此程序的父程序 PID 号码
C:CPU使用率
PRI/NI:Priority/Nice 优先级,数值越小越优先
ADDR:程序在内存中哪个部分,如果时正在运行的程序一般会显示 -
SZ:代表此程序用掉多少内存
WCHAN:表示目前程序是否运作中,同样的, 若为 - 表示正在运作中
TTY:登入者的终端机位置,若为远程登录则使用动态终端接口 (pts/n),如例子中的pts/1
TIME:程序使用掉的CPU时间,非系统时间
CMD:哪个指令触发的
2)ps -aux /*列出目前所有的正在内存当中的程序*/
[root@www ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 2064 616 ? Ss Mar11 0:01 init [5]
root 2 0.0 0.0 0 0 ? S< Mar11 0:00 [migration/0]
root 3 0.0 0.0 0 0 ? SN Mar11 0:00 [ksoftirqd/0]
------------------------------中间省略--------------------------------
root 13639 0.0 0.2 5148 1508 pts/1 Ss 11:44 0:00 -bash
root 14232 0.0 0.1 4452 876 pts/1 R+ 15:52 0:00 ps aux
root 18593 0.0 0.0 2240 476 ? Ss Mar14 0:00 /usr/sbin/atd
USER:该 process 属于那个使用者账号的
PID :该 process 的程序标识符
%CPU:该 process 使用掉的 CPU 资源百分比
%MEM:该 process 所占用的物理内存百分比
VSZ :该 process 使用掉的虚拟内存量 (Kbytes)
RSS :该 process 占用的固定的内存量 (Kbytes)
TTY :该 process 是在那个终端机上面运作,若与终端机无关则显示“ ?”,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络 连接进主机的程序(远程链接)
STAT:该程序目前的状态,状态显示与 ps -l 的 S 旗标相同 (R/S/T/Z)
START:该 process 被触发启动的时间
TIME :该 process 实际使用 CPU 运作的时间
COMMAND:该程序的实际指令为何
3)ps -axjf /*列出类似程序树的程序显示*/
[root@www ~]# ps axjf
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
0 1 1 1 ? -1 Ss 0 0:01 init [5]
-----------------------------------中间省略--------------------------------
1 4586 4586 4586 ? -1 Ss 0 0:00 /usr/sbin/sshd
4586 13637 13637 13637 ? -1 Ss 0 0:00 \_ sshd: root@pts/1
13637 13639 13639 13639 pts/1 14266 Ss 0 0:00 \_ -bash
13639 14266 14266 13639 pts/1 14266 R+ 0 0:00 \_ ps axjf
PGID:根据man ps中的定义,process group ID or process ID
TPGID:ID of the foreground process group on the tty
SID: process ID of the session leader
当然,树状图也可以用pstree来显示