一、什么是进程?
进程就是系统未完成并且正在进行的工作。
二、查看系统进程
1、图形方式查看
gnome-system-monitor
图示:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190112204601371.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODMwNzEy,size_16,color_FFFFFF,t_70)
2、进程查看命令
ps -A ##所有进程
-a ##在当前环境中运行的进程,不包含环境信息
-u ##显示进程用户信息
a ##在当前环境中运行的进程
x ##列出系统中所有运行包含tty输出设备
f ##显示进程的父子关系
e ##显示进程的详细信息(系统资源的调用)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190112205009222.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODMwNzEy,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190112205352765.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190112205403852.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190112205413848.png)
ps常用组合:
ps aux ##显示系统中所有进程并显示进程用户
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190112205648805.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODMwNzEy,size_16,color_FFFFFF,t_70)
ps ef ##显示进程详细信息并显示进程父子关系
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190112205815517.png)
ps ax ##显示当前系统中的所有进程
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190112205954937.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODMwNzEy,size_16,color_FFFFFF,t_70)
pstree ##显示当前系统的进程树
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190112210142924.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODMwNzEy,size_16,color_FFFFFF,t_70)
那么,我们如何根据自己的需要让每个进程显示指定的信息呢?别急,接下来就告诉你!
ps -o xxx ##显示进程的指定信息
comm ##进程名称
user ##进程所有人
group ##进程所有组
%cpu ##进程cpu使用率
%mem ##进程内存使用率
pid ##进程id
nice ##进程优先级
示例:
ps -o comm,user,pid,%cpu
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190112210658849.png)
3、进程排序
ps ax --sort=
+%cpu|-%cpu ##按cpu占用率从小到大|从大到小排序
+%mem|-%mem ##按内存使用率 从小到大排序|从大到小排序
示例:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190112211335454.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODMwNzEy,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190112211507346.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODMwNzEy,size_16,color_FFFFFF,t_70)
4、在stat进程状态中显示的信息
S ##进程状态
l ##内存中有锁定空间
N ##优先级低
< ##优先级高
+ ##前台运行
s ##顶级进程
示例:
![](https://img-blog.csdnimg.cn/20190112213607442.png)
此进程的进程状态为高优先级的顶级进程,并且内存中有锁定空间。
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019011221374339.png)
此进程的进程状态为低优先级进程的顶级进程,并且内存中有锁定空间。
有锁定空间的进程可以理解为该进程进入后台后,其他进程不能占用该进程使用的内存。
5、进程优先级
优先级概念:
- CPU资源分配的先后顺序,就是进程的优先权
- 优先权高的进程有优先执行的权利。配置进程优先权对多任务环境的Linux很有用,可以改善系统性能。
- 还可以把进程运行到指定的CPU上,这样一来,把不重要的进程安排到某个CPU,可以大大改善系统的整体性能。
1、进程的优先级范围
-20~19
数字越小,进程优先级越高。
2、优先级的查看
ps ax -o pid,nice,comm
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190112214935489.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODMwNzEy,size_16,color_FFFFFF,t_70)
3、指定某个优先级开启进程
nice -n 优先级数字 进程名称
示例:
nice -n -5 vim & ##开启vim并且指定程序优先级为-5
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190112215335572.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODMwNzEy,size_16,color_FFFFFF,t_70)
**注意:**nice指定优先级只对设定后新开启的进程有效,对设定前开启的进程无效。
4、改变进程优先级
renice -n 优先级数字 进程pid
示例:
准备工作:
ps a -o nice,comm,pid
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190112221408894.png)
renice -n -5 2910 ##改变2910进程优先级为-5
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190112221541196.png)
注意:
nice与renice不同在于前者只对新产生的进程有效,而后者也可以改变已存在进程的优先级。
6、环境中进程的前后台调用
jobs ##查看被打入环境后台的进程
ctrl+z ##把占用终端的进程打入暂停打入后台
fg jobsnum ##把后台进程调回前台
bg jobsnum ##把后台暂停的进程运行
comm & ##让命令直接在后台运行
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190112222128540.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190112222208937.png)
7、进程信号
1、常用的信号等级
kill -信号等级 进程id
1 ##进程重新加载配置
进程重新加载配置,指的是在进程不停止的情况下重新加载进程的配置文件信息,类似于游戏里面的“不停服更新“
2 ##删除进程在内存中的数据
3 ##删除鼠标在内存中的数据
解释:
对于删除进程在内存中的数据,如果该进程有锁定空间,那么删除进程在内存中的数据,相当于关掉这个进程。如果进程没有锁定空间,那么只是释放了该进程原占有的内存。
9 ##强行结束单个进程(不能被阻塞)
15 ##正常关闭进程 (可能会被阻塞)
分析:kill -9 为强行结束单个进程,不管该进程的优先级高不高。而kill -15 是正常关闭进程,一般对第三方软件可以正常关闭,但是对于优先级较高的进程,则可能被阻塞,不能关闭。
示例;
准备工作
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190112224231679.png)
分析:用kill -15 关掉一个shell被阻塞了,shell并没有关掉。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190112224851165.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODMwNzEy,size_16,color_FFFFFF,t_70)
分析:用kill -15关掉firefox成功了。
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019011222503569.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODMwNzEy,size_16,color_FFFFFF,t_70)
分析:用kill -15 关掉一个shell被阻塞了,用kill -9 成功杀死了这个shell进程。
18 ##运行暂停的进程
19 ##暂停某个进程 (不能被阻塞)
20 ##把进程打入后台 (打入后台同时会暂停) (可以被阻塞)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190113205500168.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190113210223731.png)
更多的进程信号等级可以查看:
man 7 signal ##查看信号详细信息
killall -信号 进程名字
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190113210617876.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODMwNzEy,size_16,color_FFFFFF,t_70)
pkill -u student -信号
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190113211305708.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODMwNzEy,size_16,color_FFFFFF,t_70)
8、进程的动态监控
top
1 ##显示cpu每个核的负载
s ##调整刷新频率
c ##cpu负载排序
m ##内存使用量排序
h ##查看帮助
u ##查看指定用户进程
k ##对指定进程发起信号
q ##退出
显示cpu每个核的负载:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190113213908148.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODMwNzEy,size_16,color_FFFFFF,t_70)
调整刷新频率:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190113212008139.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODMwNzEy,size_16,color_FFFFFF,t_70)
按cpu负载排序:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190113212151964.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODMwNzEy,size_16,color_FFFFFF,t_70)
按内存使用量排序:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190113214112728.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODMwNzEy,size_16,color_FFFFFF,t_70)
查看帮助:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190113214210166.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODMwNzEy,size_16,color_FFFFFF,t_70)
查看指定用户进程:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190113212444651.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODMwNzEy,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190113212459282.png)
对指定进程发起信号:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190113212926283.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODMwNzEy,size_16,color_FFFFFF,t_70)
输入要控制进程的pid
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190113213012332.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxODMwNzEy,size_16,color_FFFFFF,t_70)
输入信号等级,图为9。结束vim进程。