Linux之进程管理
-
进程
进程的定义:
程序(program)防止在储存媒体中(如硬盘、光盘、软盘、磁带等)为实体文件的形态存在。程序被触发后,执行者的权限与属性、程序的程序码与所需数据等都会被载入内存中,操作系统并给与这个内存内的单元一个识别码(PID)所以进程就是一个正在运行中的程序。
-
进程的状态
R(RUNNING):程序正在运行中;
S(SLEEP):程序处于睡眠状态,可被唤醒;
D :不可被唤醒的睡眠状态,类似视频暂停功能;
T(STOP): 停止状态,可能是在工作控制(背景暂停)或除错状态。
Z(ZOMBIE):僵尸进程,程序已经终止但却无法被移除,系统bug。 -
进程的图形查看
gnome-system-monitor ##图形方式查看进程
或者鼠标点击如图所示:
- ps命令
作用:用来查看系统进程
ps ##查看系统进程
ps -A ##查看所有进程
ps -a ##在当前环境中运行的进程,不包括函环境信息
ps -u ##现实进程用户信息
ps a ##在当前环境中运行的进程
ps x ##列出系统中所有运行tty字符输出设备的进程
ps f ##显示进程及其父子关系
孤儿进程受系统初始化程序管理
删除父进程 而子进程没有删除掉的这些进程叫孤儿进程。
systemd 是系统初始化程序 红帽7之前是init
ps e ##显示进程的详细信息
常用组合ps命令
ps aux ##显示系统中所有进程并显示进程用户
ps ef ##显示进程详细信息以及进程父子关系
ps ax ##显示当先系统中的所有进程
pstree ##显示进程树
- 显示进程指定信息和排序
ps -o user,group,comm,pid,pidd,nice %cpu,%men ##显示指定信息
用户 组 命令 优先级 cpu 内存
ps ax --sort=+上述参数 -o 上述参数 ##从小到大排序(默认排序)
ps ax --sort=-上述参数 -o 上述参数 ##从大到小排序(倒序)
注意:默认下从上到下从小到大排列
示例:将进程中占有内存最高的前五个用户的pid及命令名称排序显示
ps -ax --sort=-%mem -o pid,%mem,comm |head -n 6 |tail -n 5
- stat中显示的信息
如图所示STAT列:
S ##进程状态
l ##内存中有锁定空间
N ##优先低级
< ##优先高级
s ##顶级进程
+ ##前台运行
- 进程优先级
优先级范围:-20~19 -20优先级最高 19最低
优先级查看:
ps -ax -o pid,nice,comm ##按照pid,优先级,名称查看系统进程
-
nice命令
作用:指定某个优先级开启进程
nice -n 优先级数字 进程名称 ##指定某个优先级开启进程
nice -n -f vim & ##开启vim并且指定程序优先级为-f(数字)
-
renice命令
作用:改变进程的优先级
renice -n 优先级数字 pid ##改变进程的优先级
- 进程信号
常用的进程信号:
man 7 signal ##查看信号详细信息
1 ##进程重新加载配置
2 ##删除进程在内存中的数据
3 ##删除鼠标在内存中的数据(类似看视频鼠标自动隐藏)
9 ##强行结束单个进程(不能被阻塞)
15 ##正常关闭进程(可能会被阻塞)
18 ##运行暂停的进程
19 ##暂停某个进程(可以被阻塞)
20 ##将进程打入后台
-
kill命令
作用:对进程发起信号
kill -信号数字 进程pid ##对某一个进程发起信号
killall -信号数字 进程名称 ##对一类名称进程进行处理
pkill -u student -信号数字 ##对某一用户进程进行处理
- 环境中进程的前后台调用
ctrl+z ##把占用终端的进程打入后台
jobs ##查看被打入环境后台的进程
fg jobsnumber ##把后台进程调回前台
bg jobsnumber ##让后台暂停的进程运行
comm(程序名称) & ##直接让程序在后台进行
- top命令
作用:相比ps命令进程监测,top更倾向于动态系统进程监测
top 1 ##显示每个核的负载
top s ##调整刷新频率(精确到0.1s)
top c ##cpu负载排序
top m ##内存使用排序
top h ##查看帮助
top u ##查看指定用户进程
top k ##对指定进程发起信号
先输入进程PID
敲回车后在发起信号指令
退出top命令按“q”
END