**
Liunx系统的进程管理
**
1. 什么是进程?
程序(program)放置在储存媒体中(如硬盘、光盘、软盘、磁带等),为实体文件的形态存在。
进程:程序被触发后,执行者的权限与属性、程序的程序码与所需数据等都会被载入内存中,操作系统并给予这个内存内的单元一个识别码(PID),可以说,进程就是一个正在运行中的程序。
2. 进程状态
R(running):该程序正在运行中。
S(sleeping):该程序目前正在睡眠状态(idle),但可以被唤醒(signal)。
D:不可被唤醒的睡眠状态,通常进程可能在等待I/O的情况。
T(stop):停止状态,可能是在工作控制(背景暂停)或除错(traced)状态。
Z(Zombie):僵尸状态,程序已经终止但却无法被移除至内存外。
3. 怎么查看进程
gnome-system-monitor
- ps命令
ps -A | #查看所有进程 |
---|---|
ps -a | #在当前环境中运行的进程,不包含环境信息(没有环境本身的进程) |
ps a | #在当前环境中运行的进程 |
ps -u | #显示进程用户信息 |
ps x | # 列出系统中所运行的含有tty输出(字符设备)的进程 (必须有字符设备) |
ps f | #查看进程父子关系 (父进程关闭子进程关闭)(孤儿程序受系统的初始化程序控制) |
ps e | #显示系统资源 |
ps命令
ps a命令和ps -a,ps -u命令
扫描二维码关注公众号,回复:
5933723 查看本文章
ps f命令 和 ps e命令
- ps 命令的常用组合
ps aux | #显示系统中所有进程并显示进程用户信息 |
---|---|
ps ef | #显示进程详细信息并显示进程父子关系 |
ps ax | #显示当前系统中的所有进程 |
pstree | #显示当前系统的进程树 |
ps aux命令
ps ef命令
pstree命令
- 显示进程指定信息
ps -o | xxx | 显示进程的指定信息 |
---|---|---|
comm | 进程名称 | |
user | 进程名称 | |
group | 进程所有组 | |
%cpu | 进程cpu使用率 | |
%mem | 进程内存使用率 | |
pid | 进程id | |
nice | 进程优先级 |
- .进程排序
ps ax --sort=+%cpu (升序,+可以省略) / -%cpu(降序) #按cpu使用率排序
ps ax --sort=+%mem / -%mem(降序) #按内存使用率排序
**
- stat中显示的信息
S | 进程状态 |
---|---|
l | 内存中有锁定空间 |
N | 优先级低 |
< | 优先级高 |
+ | 前台运行 |
s | 顶级进程 |
R+ | 正在运行 |
-
进程中优先级的范围
-20~19(数值越小优先级越高) -
进程中优先级的查看
ps ax -o pid,nice,comm
- 已指定的优先级开启进程
nice -n 优先级数字 <commond>
- 改变进程优先级:renice
renice -n -5 4073 ##改变4073进程的优先级为-5
- 环境中进程的前后台调用
命令 | 作用 |
---|---|
jobs | 查看被打入环境后台的进程 |
ctrl+z | 把占用终端的进程打入后台 |
fg jobsnum | 把后台进程调回前台 |
bg jobsnum | 把后台暂停的进程运行 |
comm & | 让命令直接在后台运行 |
常用的信号等级 | 作用 |
---|---|
1 | 进程重新加载配置 |
2 | 删除进程在内存中的数据(不能是锁定的内存(锁定的空间数据被删除进程就会被关闭))(ctrl+c) |
3 | 删除鼠标在内存中的数据(ctrl+\) |
9 | 强行结束单个进程(不能被阻塞) |
15 | 正常关闭进程(可能会被阻塞) |
18 | 运行暂停的程序 |
19 | 暂停某个进程(不能被阻塞) |
20 | 把进程打入后台 (可以被阻塞) |
man 7 signal | 查看信号详细信息 |
- 进程的关闭
kill是向内核发送数据的
kill -信号 进程pid
killall -信号 进程名字
pkill -u student -信号 #关闭与student有关的所有进程
- 进程的动态监控
1 | 显示cpu每个核的负载 |
---|---|
s | 调整刷新频率 |
c | cpu负载排序 |
m | 内存使用量排序 |
h | 查看帮助 |
u | 查看指定用户进程 |
k | 对指定的进程发起信号 |
z | 显示颜色 |
b | 高亮显示 |
q | 退出 |