1、ps命令
直接在linux系统中输入“ps”,结果如下:
默认情况下,ps命令指挥显示运行在当前控制台下的属于当前用户的进程。
PID:程序的进程号
TTY:程序运行的终端
TIME:程序运行的时间
参数
-a 显示所有终端机下执行的程序,除了阶段作业领导者之外。
a 显示现行终端机下的所有程序,包括其他用户的程序。
-A 显示所有程序。
-c 显示CLS和PRI栏位。
c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的
-C <指令名称> 指定执行指令的名称,并列出该指令的程序的
-d 显示所有程序,但不包括阶段作业领导者的程序。
-e 此参数的效果和指定"A"参数相同。
e 列出程序时,显示每个程序所使用的环境变量。
-f 显示UID,PPIP,C与STIME栏位。
f 用ASCII字符显示树状结构,表达程序间的相互关系。
-g<群组名称> 此参数的效果和指定"-G"参数相同,当亦能使用阶段作业领导者的名称来指定。
g 显示现行终端机下的所有程序,包括群组领导者的
-G <群组识别码> 列出属于该群组的程序的状况,也可使用群组名称来指定。
h 不显示标题列。
-H 显示树状结构,表示程序间的相互关系。
-j或j 采用工作控制的格式显示程序状况。
-l或l 采用详细的格式来显示程序状况。
L 列出栏位的相关信息。
-m或m 显示所有的执行绪。
n 以数字来表示USER和WCHAN栏位。
-N 显示所有的程序,除了执行ps指令终端机下的程序之外。
-p <程序识别码> 指定程序识别码,并列出该程序的状况。
p <程序识别码> 此参数的效果和指定"-p"参数相同,只在列表格式方面稍有差异。
r 只列出现行终端机正在执行中的程序。
-s <阶段作业> 指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况。
s 采用程序信号的格式显示程序状况。
S 列出程序时,包括已中断的子程序资料。
-t <终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
t <终端机编号> 此参数的效果和指定"-t"参数相同,只在列表格式方面稍有差异。
-T 显示现行终端机下的所有程序。
-u <用户识别码> 此参数的效果和指定"-U"参数相同。
u 以用户为主的格式来显示程序状况。
-U <用户识别码> 列出属于该用户的程序的状况,也可使用用户名称来指定。
U <用户名称> 列出属于该用户的程序的状况。
v 采用虚拟内存的格式显示程序状况。
-V或V 显示版本信息。
-w或w 采用宽阔的格式来显示程序状况。
x 显示所有程序,不以终端机来区分。
X 采用旧式的Linux i386登陆格式显示程序状况。
-y 配合参数"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 。
-<程序识别码> 此参数的效果和指定"p"参数相同。
--cols <每列字符数> 设置每列的最大字符数。
--columns <每列字符数> 此参数的效果和指定"--cols"参数相同。
--cumulative 此参数的效果和指定"S"参数相同。
--deselect 此参数的效果和指定"-N"参数相同。
--forest 此参数的效果和指定"f"参数相同。
--headers 重复显示标题列。
--help 在线帮助。
--info 显示排错信息。
--lines <显示列数> 设置显示画面的列数。
--no-headers 此参数的效果和指定"h"参数相同,只在列表格式方面稍有差异。
--group <群组名称> 此参数的效果和指定"-G"参数相同。
--Group <群组识别码> 此参数的效果和指定"-G"参数相同。
--pid <程序识别码> 此参数的效果和指定"-p"参数相同。
--rows <显示列数> 此参数的效果和指定"--lines"参数相同。
--sid <阶段作业> 此参数的效果和指定"-s"参数相同。
--tty <终端机编号> 此参数的效果和指定"-t"参数相同。
--user <用户名称> 此参数的效果和指定"-U"参数相同。
--User <用户识别码> 此参数的效果和指定"-U"参数相同。
--version 此参数的效果和指定"-V"参数相同。
--widty <每列字符数> 此参数的效果和指定"-cols"参数相同。
在linux系统中,进程的状态有五种
1. 运行(正在运行或在运行队列中等待)
2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
在终端输入:ps -ef
对于部分属性的说明
USER 进程的属主;
PID 进程的ID;
PPID 父进程;
%CPU 进程占用的CPU百分比;
%MEM 占用内存的百分比;
NI 进程的NICE值,数值大,表示较少占用CPU时间;
VSZ 该进程使用的虚拟內存量(KB);
RSS 该进程占用的固定内存量(KB)(驻留中页的数量);
TTY 该进程在那个终端上运行(登陆者的终端)
WCHAN 当前进程是否正在运行
START 该进程启动的时间
TIME 该进程实际使用CPU的时间;
COMMAND 命令的名称和参数;
2、实时进程信息top命令
如果想观察进程的实时信息,则可以使用这个命令,在命令行中输入:top,部分结果如图所示。
结果分为几个部分
第一行部分显示的是系统的概况:第一行显示了当前时间、系统的运行时间、登入的用户数以及系统的平均负载。平均负载有三个值:最近1分钟、最近5分钟、最近15分钟,值越大,则系统的负载越高,如果15分钟平均负载都很高,则说明系统可能有问题了。
第二行部分显示了概要的进程信息,多少进程处于运行、休眠、停止或者僵化
第三行部分显示了CPU信息,根据进程的宿主和进程的状态将CPU的利用率分为几类输出。
第四行部分显示了当前系统内存的状态。
对于最后的部分的参数的解释如下;
列名 | 含义 | |
a | PID | 进程id |
b | PPID | 父进程id |
c | RUSER | Real user name |
d | UID | 进程所有者的用户id |
e | USER | 进程所有者的用户名 |
f | GROUP | 进程所有者的组名 |
g | TTY | 启动进程的终端名。不是从终端启动的进程则显示为 ? |
h | PR | 优先级 |
i | NI | nice值。负值表示高优先级,正值表示低优先级 |
j | P | 最后使用的CPU,仅在多CPU环境下有意义 |
k | %CPU | 上次更新到现在的CPU时间占用百分比 |
l | TIME | 进程使用的CPU时间总计,单位秒 |
m | TIME+ | 进程使用的CPU时间总计,单位1/100秒 |
n | %MEM | 进程使用的物理内存百分比 |
o | VIRT | 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES |
p | SWAP | 进程使用的虚拟内存中,被换出的大小,单位kb。 |
q | RES | 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA |
r | CODE | 可执行代码占用的物理内存大小,单位kb |
s | DATA | 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb |
t | SHR | 共享内存大小,单位kb |
u | nFLT | 页面错误次数 |
v | nDRT | 最后一次写入到现在,被修改过的页面数。 |
w | S | 进程状态。 D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 |
x | COMMAND | 命令名/命令行 |
y | WCHAN | 若该进程在睡眠,则显示睡眠中的系统函数名 |
z | Flags | 任务标志,参考 sched.h |