liunx中的进程管理
-
什么是进程:
程序放置在储存媒体中为实体的型态存在。
进程:程序被触发后,执行者的权限与属性、程序的程序码与所需数据等都会被载入内存中,操作系统并给予内存内的单元一个识别码(PID),也就是说进程就是一个正在运行的程序。 -
进程的状态:
R (Runing)
###该程序正在运行###
S(Sleep)
###该程序正在睡眠状态(idle),但可以被唤醒(signal)###
D
###不可被唤醒状态,通常金城在等待 I/O 的情况###
T
###停止状态(stop),可能是在工作控制(背景暂停)或除错(traced)状态###
Z(Zombie)
###僵尸状态,程序已经终止但却无法移除内存外### -
如何查看进程:
图形方式查看
1)图形方式查看
gonme-system-monitor
2)命令查看进程
ps :静态查看进程
-A:
## 所有的process均显示出来,与-e具有同样的效用###
–a:
###不与terminal有关的所有process###
–u:
###有效使用者(effective user)相关的process·###
x:
###通常与a这个参数一起使用,可列出较完整信息###
I:
###较长较详细将该PID的信息列出###
–f:
###做一个更完整的输出###
3)ps的常用组合:
ps aux
###显示系统中所有进程并显示进程用户###
px ef
###显示进程详细信息并显示父子关系###ps ax
###显示当前系统中所有的进程信息####
pstree
###当前系统的进程树###
4)显示进程指定信息
ps -o comm
###显示进程名称###
ps -o user
###显示进程所有人###
ps -o group
###现实进程所有组###
ps -o %cpu
###显示进程cpu使用率###
ps -o %mem
###显示内存使用率###
ps -o pid
###显示进程pid###
ps -o nice
###显示进程优先级### -
进程的排序:
ps
ax - -sort= +%cpu
ax - -sort= +%mem
stat中显示的信息
S
###进程状态##
l
###内存中有锁定进程###
N
###优先级低###
<
###优先级高###
+
####前台运行###
s
###顶级进程### -
进程优先级:
为什么要有优先级:在多任务操作系统中,操作系统为了区分进程的重要程度,需要一个衡量重要程度的指标,优先级便由此产生。在进程中,优先级高的先执行,系统资源也优先分配给进程优先级高的进程,不仅如此在同一调度周期中,优先级高的进程占用的时间也比优先级低的长。
进程的优先级范围:
-20~19
优先级的查看
ps ax -o pid,nice,comm
###优先级的id,值,名称###
指定某个优先级开启程序:
nice -n 优先级数字 进程名称
eg:
nice -n 5 vim
改变进程优先级:
renice -n 优先级数字 进程pid
eg:
renice -n -5 1806
###改变1806进程优先级为-5###
6. 环境中进程前后台调用:
jobs
###查看被打入后台的进程###
Ctrl+z
###把占用进程的终端打入后台###
fg jobsnum
###把后台进程调回前台###
bg jobsnum
###把后台暂停的进程运行###
comm &
###让命令直接在后台运行###
7. 进程信号:
1
###进程重新加载配置###
2
###删除进程在内存中的数据###
3
###删除鼠标在内存中的数据###
9
###强行结束单个进程(不能被阻塞)###
15
###正常关闭进程(可以被阻塞)###
18
###运行暂停程序###
19
###暂停某个进程(不能被阻塞)###
20
###把进程打入后台(可以被阻塞)###
man 7 signal
###查看信号信息###
kill -信号 进程pid
killall -信号 进程名称
pkill -u student -信号
8. 进程的动态监控:
1.top
###进行进程动态监控###
l
##显示cpu每个核的负载###
s
##调整刷新频率##
c
##cpu负载排序##
m
##内存使用量排序##
h
##查看帮助##
u
##查看指定用户进程##
k
##对指定进程发起信号##
q
##退出##
按s 调整刷新频率,我们可以随机调整刷新时间
“u”查看指定用户进程
"h"查看帮助
我们还可以按k对指定进程发出信号!