进程管理
守护进程:在系统引导过程中启动的进程,跟终端无关的进程
前台进程:跟终端相关,通过终端启动的进程
进程是一个在系统中运行的程序
进程是已启动的可执行程序的运行实例,进程有以下组成部分:
ps
静态查看进程,ps
常用组合:
ps -aux ps aux
u:以用户为中心组织进程状态信息显示
a:与终端相关的进程;
x:与终端无关的进程;
[root@localhost ~]# ps aux --sort %cpu # 递增
ps -ef
-e:显示所有进程
-f:显示完整格式程序信息
top
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-93mgTF0R-1645756594621)(C:\Users\HP\AppData\Roaming\Typora\typora-user-images\image-20220222202515991.png)]
第1行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平 均值,数值越小意味着负载越低)。
第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源 百分比等。
第4行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。(buffer和cache之间的区 别,cache是提高cpu和内存之间的数据交换速度,buffer是io设备和存储设备之间的缓冲区)
进程状态 子进程继承父进程的安全性身份、过去和当前的文件描述符、端口和资源特权、环境变量,以及程序代 码。随后,子进程可能exec自己的程序代码。通常,父进程在子进程运行期间处于睡眠(sleeping)状态。 当子进程完成时发出(exit)信息请求,在退出时,子进程已经关闭或丢弃了其资源环境,剩余的部分称之 为僵尸(zombie)。父进程在子进程退出时收到信号而被唤醒,清理剩余的结构,然后继续执行其自己的 程序代码。
R(runing):运行状态
S(sleeping):浅度睡眠状态
D(disk sleep):磁盘睡眠状态
T(stopped):停止进程
X(dead):死亡状态
Z(zombie):僵尸状态
僵尸进程:当一个进程fork一个子进程之后,如果子进程退出,而父进程没有利用wait 或者 waitpid 来获取子进程的状态信息,那么子进程的状态描述符依然保存在系统中。
孤儿进程:当一个父进程fork一个子进程之后,父进程突然被终止了,那么这个子进程就成为了一 个孤儿进程,它会被init进程接管
缓冲(buffer)和缓存(cache)的区别:
缓存(cache)是在读取硬盘中的数据时,把最常用的数据保存在内存的缓存区中,再次读取该数据时,就不去硬盘中读取了,而在缓存中读取。
缓冲(buffer)是在向硬盘写入数据时,先把数据放入缓冲区,然后再一起向硬盘写入,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。
简单来说,缓存(cache)是用来加速数据从硬盘中"读取"的,而缓冲(buffer)是用来加速数据"写入"硬盘的。
nice 修改进程优先级
如果未指定程序,则会显示目前程序的优先级别,默认的nice值为 0,范 围为 -20(最高优先级别)到 19(最低优先级别)。
Linux进程调度及多任务
相对优先级nice
查看进程的nice级别
启动具有不同nice级别的进程
更改现有进程的nice级别
使用top查看nice级别
NI:实际nice级别
PR:将nice级别显示为映射到更大优先级队列,-20映射到0,+19映射到39
使用ps查看nice级别
[root@localhost ~]# ps axo pid,command,nice --sort=nice
[root@localhost ~]# ps axo pid,command,nice,cls --sort=-nice
启动具有不同nice级别的进程
启动进程的时候为进程指定nice值 启动进程时,通常会继承父进程的nice级别,默认为0
root@localhost ~]# nice -n -5 sleep 6000 &
[root@localhost ~]# ps axo command,pid,nice |grep sleep
[root@localhost ~]# nice -n -20 systemctl start httpd
[root@localhost ~]# ps axo pid,command,nice,cls |grep httpd
更改现有进程的nice级别
更改正在运行的进程的nice值
1,使用top更改nice级别
r 调整进程的优先级(Nice Level) (-20高) - - - 0 - - - (19低)
2,使用shell更改nice级别
[root@localhost ~]# sleep 7000 &
[2] 10267
[root@localhost ~]# renice -20 10267
10267 (进程 ID) 旧优先级为 0,新优先级为 -20
kill
-9 强制终止 -15正常终止 (默认)
pkill
pkill 用于杀死一个进程,与 kill 不同的是它会杀死指定名字的所有进程,类似于 killall 命令
name: 进程名
-u:指定用户名
-t:指定终端
PRI
在top命令中可以看到有PR这个数值,PR 和 nice 值,都会影响进程执行的优先级。PR 由 OS 内核动态调整, 用户不能调整(PR 值越低,进程执行的优先级越高)。
1 PR(新) = PR(旧) + nice
jobs
jobs 命令可以用来查看当前终端放入后台的任务
将任务放入到后台
Linux 命令放入后台的方法有两种: 在命令后面加入 空格 & 。
使用这种方法放入后台的命令,在后台处于执行状态 命令执行过裎中按 Ctrl+Z 快捷键,命令在后台处于暂停状态
[root@localhost ~]# top &
[root@localhost ~]# vi &
[root@localhost ~]# ping baidu.com > /dev/null &
# 让ping运行,但是不显示结果
后台任务恢复到后台运行
bg %工作号
将任务恢复到前台
fg %工作号
@localhost ~]# vi &
[root@localhost ~]# ping baidu.com > /dev/null &
让ping运行,但是不显示结果
后台任务恢复到后台运行
```bash
bg %工作号
将任务恢复到前台
fg %工作号