问题
1. 什么是进程?
进程是指在操作系统中正在运行的一个应用程序
2. 图形的进程查看方式
gnome-system-monitor
- 可以打开类似于Windows资源管理器的界面,进程管理里面的信息,其查看的是
/proc
文件里面的信息。 /proc
目录中包含许多以数字命名的子目录,这些数字表示系统当前正在运行进程的进程号,里面包含对应进程相关的多个信息文件。
查看进程
ps指令
- 用于查看进程
- ps指令显示的是瞬间进程的状态,并不动态连续。
指令 | 参数 | 作用 |
---|---|---|
ps | 查看与当前环境相关的进程 | |
a | 与当前环境相关的所有进程 | |
-a | 终端中运行的进程但不包含当前环境进程信息 | |
-A | 查看系统所有进程 | |
-e | 查看系统所有进程 | |
x | 查看系统中所有含有输出终端的进程 | |
f | 查看进程的从属关系 | |
u | 进程的所有人 | |
ax | 显示所有的进程 | |
-aux | 显示所有包含其他使用者的详细的进程信息 | |
-o | 可以设置显示指定的信息 |
ps
指令:
ps -aux
:
ps -aux
指令各参数的含义
参数 | 含义 |
---|---|
USER | 执行进程的用户 |
PID | pid |
%CPU | CPU占用率 |
%MEM | 物理内存占用率 |
VSZ | 虚拟内存占用的大小 |
RSS | 占用固定内存的大小 |
TTY | 该进程运行的终端,如果与终端机无关则显示?tty开头的为本机登陆者程序 |
STAT | 该程序目前的状态 |
START | 行程开始时间 |
TIME | 执行的时间 |
COMMAND | 所执行的指令 |
进程状态STAT
- STAT的状态主要有以下几种:
进程状态 | 含义 |
---|---|
S | 进程状态 |
s | 此进程为顶级进程 |
T | 进程暂停 |
< | 进程优先级高 |
N | 进程优先级低 |
l | 进程在内存中有锁定空间 |
+ | 正在运行 |
D | 不可中断的静止 |
R | 正在执行中 |
Z | 已经停止但暂时无法消除 |
W | 没有足够的内存可分配 |
显示指定的信息
ps -o
指令可以 选择显示指定的信息展示:
ps ax -o comm,nice,%cpu,%mem,pid,user,group,stat
参数 | 含义 |
---|---|
comm | 进程的名字 |
nice | 进程的优先级 |
group | 组 |
排序显示信息
ps ax -o comm,%cpu --sort=%cpu
按cpu使用率升序排序
ps ax -o comm,%cpu --sort=-%cpu
按cpu使用率倒序排序
进程的优先级
查看进程的优先级
ps -o nice,comm,pid
NI显示的就是进程的优先级
- -20优先级最高
- 19优先级最低
- 0是默认的优先级
修改进程的优先级
指令 | 作用 |
---|---|
renice -n -5 PID | 修改进程的优先级为-5 |
nice -n -5 命令 & | 指定优先级-5开启进程并放到后台 |
nice -n -5 vim &
:
进程前后台的调用
操作 | 作用 |
---|---|
ctrl +z |
将占用终端的进程打入后台并停止运行 |
ctrl +c |
将占用当前终端的进程结束 |
查看被打入后台的进程
jobs
命令
符号 | 解释 |
---|---|
+ | 优先级高 |
- | 优先级低 |
进程的前后台
- 通过
jobs
指令中的序号来操作
指令 | 作用 |
---|---|
bg jobsnum | 将指定进程在后台运行 |
fg jobsnum | 将指定进程调回前台 |
bg jobsnum
:
- 通过该命令可以更改后台程序的优先级
fg jobsnum
:
- 使用之后vim会重新回到前台:
信号
常用信号的种类
信号 | 作用 |
---|---|
1 | 进程不停止情况下重新加载配置 |
2 | 清除进程在内存中的数据 |
3 | 清除鼠标在内存中的数据 |
9 | 强行结束进程,不能被阻塞 |
15 | 正常关闭进程 |
18 | 运行停止的进程 |
19 | 暂停进程,不能被阻塞 |
20 | 暂停进程,可以被阻塞 |
发起信号的工具
指令 | 作用 |
---|---|
kill 信号 pid | 通过pid向进程发送信号 |
killall 信号 进程名 | 通过进程名字向一个或多个进程发送信号 |
指令演示
kill -2
:
- 在第一个shell中随便输入一些内容:
- 启动第二个shell查看进程信息:
3.执行kill -2 213
清除第一个shell内存中的数据,第一个shell中的变化:
kill -9
:
- 从第二个shell中执行
kill -9 213
关闭第一个shell:
- 此时第一个shell就关闭了