Linux是一个多用户多任务的操作系统,系统上可以同时运行多个进程。
程序:程序是完成某些功能的代码的集合
进程:是程序运行之后,在内存中的状态,运行的程序会产生一个或多个进程
如何产生一个进程?
1)执行程序或命令
2)计划任务
/proc目录下蓝色数字目录,都是进程号
静态查看进程
1、ps:是监视系统进程的主要工具,显示的是瞬时的进程状况
ps -ef
ps aux
-e:显示所有进程
-f:全格式显示
a:显示所有进程(包含其他用户的进程)
u:显示进程的拥有者
x:和a一起使用,显示所有进程(包含无控制终端的进程) TTY为?的进程
进程的拥有者 进程号 父进程号 cpu使用的资源百分比 开始时间 运行进程的终端名字 进程运行的时间 命令
pts:伪终端、虚拟终端
tty1--tty6: 字符终端
拥有者 进程号 占用cpu百分比 占用内存百分比 占用的虚拟内存的大小 驻留内存大小 终端 进程状态 开始时间 运行时间 命令
STAT:进程状态
R:该进程正在运行
S:休眠进程
Z:僵尸进程,实际上该进程已经终止,但是它的父进程却无法正常终止它,造成僵尸进程的状态
T:该进程正在跟踪或者已经停止
top:实时查看系统运行状态
统计信息区(共五行):
第一行: 当前系统时间 系统运行时间 , 当前登录用户数, 系统平均负载: 1分钟,5分钟,15分钟
第二行: 任务(进程): 总数, 正在运行的, 休眠的, 停止的, 僵尸
第三行: cpu状态(%): 用户空间, 内核空间, 改变过优先级的, 空闲的, IO等待的, 硬中断, 软中断, 虚拟机
第四行: 内存状态(K): 总量, 空闲的, 使用中的, 缓存的
第五行: swap状态(K): 总量, 空闲的, 使用中的, 缓冲的
进程信息区:
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)
--------------------------------------------------------------------------------
序号 列名 含义
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 任务标志
------------------------------------------------------------------------------------
top操作:
1 -- 展开cpu信息
M -- 根据驻留内存大小进行排序。
P -- 根据CPU使用百分比大小进行排序
q -- 退出
top -p pid
top -p 1 //只观察1号进程
# pgrep -l cherrytree //查看cherrytree进程的pid
4136 cherrytree
# top -p 4136 //只观察4136号进程