Linux进程
进程常见状态
Uninterruptible sleep:不可中断的睡眠,当一个执行中的进程需要加载IO资源时,由于IO加载的速度较慢,进程会转入睡眠状态,交出CPU,由其他进程运行,进入睡眠状态。由于当前进程所需的资源没有及时得到获取,或者没有其他更多的事情需要干了。但是一个处于睡眠中的进程
在外部资源满足的时候,可以随时被唤醒。
Interruptible sleep:可中断睡眠,由用户的请求唤醒的进程,在没有用户请求的时候,进入空闲状态,于是进入睡眠状态,当有新的用户请求到达时,
进程重新被唤醒。用户请求也属于IO请求。
Zombie :称为僵尸进程,它指的是某些进程结束后,退出CPU,但是它占据的内存却不会释放。它是内核泄漏的一种表现。
子进程的内存资源是由父进程来回收的。
进程的衍生
kernel:生成第一个进程,init进程。相当于"上帝"。init: 进程号为1,操作系统上所有进程都是init的子进程。相当于"亚当/夏娃"。
进程优先级
100-139:用户可控制0-99:内核调整的
数字越小,优先级越高
进程管理命令风格Process State
SysV风格:-OptionsBSD风格: Options
进程的分类
跟终端相关的进程跟终端无关的进程
进程状态可视化
D:不可中断的睡眠R:运行或就绪
S:可中断的睡眠
T:停止
Z:僵死
<:高优先级进程
N:低优先级进程
L:已加锁进程
l: 多线程进程
s: 会话进程首进程
+:前台进程组中的进程
进程管理命令
ps
BSD风格
a: 所有与终端有关的进程
u: 所有与用户有关的信息
x: 所有与终端无关的进程
SysV风格
-elF
-ef
-eF
例:ps -o pid,comm,ni
ps -axo pid,comm,ni
pstree
显示当前系统上的进程树
-u [username | uid ]:显示与某用户有关的进程信息-p:显示进程PID
-n:按PID排序
-p [ pid ]:显示某pid及其子进程相关的进程信息
-l:显示长命令行
pgrep
进程中的grep,搜索相关进程的信息:pgrep -u user *
-P pid:显示某pid及其子进程信息-t ttyN:显示某ttyN及其子进程信息
-u|U user1,user2……:显示user1,user2,……及其子进程信息
-G gid1,gid2,……:显示gid1,gid2,……及其进程信息
-d delimiter:设置显示间隔符delimiter,默认换行显示
pkill
进程中的kill命令,用法同kill
-P pid:显示某pid及其子进程信息-t ttyN:显示某ttyN及其子进程信息
-u|U user1,user2……:显示user1,user2,……及其子进程信息
-G gid1,gid2,……:显示gid1,gid2,……及其进程信息
pidof
根据程序名称,查找其相关进程的ID号;
free
查看内存和交换内存使用情况
-b/k/m/g:设置显示单位-h:可读性显示
-t:单行显示
-o:不显示-/+buffer/cache行
-s N:指定刷新显示时间延迟,单位:s
-c M:指定刷新显示的次数,与 -s 一起使用有效
-l:显示详细的内存信息,包括High/Low内存信息
-a:显示availabel列
top
top
-d: 指定延迟时长,单位是秒
-b: 批模式
-n #:在批模式下,共显示多少批
P:根据CPU使用百分比进行排序
T: 根据累计时间进行排序
N:根据PID大小进行排序
R:切换排序方式:由大到小,由小到大
A:进入全屏分类显示模式(1:Def,2:Job,3:Mem,4:Usr)
I:打开/关闭Irix mode
B:加粗显示当前命令(top)所在的进程及系统主要参数
H:显示/隐藏所有线程
S:打开/关闭Cumulative time
G:选择filed group(要显示的子类别):1-4
Z:设置进程信息显示的颜色,a/w改变filed group类别,0-7设置颜色,q放弃操作,ENTER键保存并离开。
U:显示与某用户(有效用户,实际用户,文件系统用户)UID匹配的进程信息
W:保存当前配置到配置文件
l: 是否显示平均负载和启动时间
t: 是否显示进程和CPU状态相关信息
m: 是否显示内存相关信息
r:重新设置nice值
k: 终止某个进程
a:切换全屏分类显示的类别
M,P,N,T等对于子类别依然有效
n:设置最大任务ID,0为无线大
d/s:top信息显示情况下切换延迟/刷新时间
b:加亮显示当前命令(top)所在的进程
i:显示所有的tasks,默认on,off情况下只显示当前进程及少数进程信息
x:在颜色模式下,当前排序列高亮显示
y:在颜色模式下,“runing tasks”行高亮显示
z:打开/关闭颜色显示
u:只显示与某用户(有效用户)UID匹配的进程信息
c: 是否显示完整的命令行信息
q: 退出top