linux进程管理

本文介绍了Linux系统中的进程管理,包括守护进程、前台进程及其区别。详细讲解了进程的状态,如R(运行)、S(睡眠)、D(磁盘睡眠)、T(停止)、X(死亡)、Z(僵尸)。还提到了孤儿进程和僵尸进程的概念。此外,讨论了缓冲和缓存的作用,以及nice值如何影响进程优先级。最后,阐述了如何启动、更改和管理进程的nice级别,以及使用jobs命令管理和控制后台任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进程管理

守护进程:在系统引导过程中启动的进程,跟终端无关的进程

前台进程:跟终端相关,通过终端启动的进程

进程是一个在系统中运行的程序

进程是已启动的可执行程序的运行实例,进程有以下组成部分:

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 %工作号
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值