写在前面:因个人学习使用为RHEL8的版本,所以仅供相应的版本对应学习使用。
一、进程的基本概念
1.1 基本概念:
进程的概念:进程是程序静态文件,是运行中的程序的一个副本,进程存在一定的生命周期(准备期,运行期,终止期)
线程的概念: 是操作系统能够进行运算调度的最小单位。
两者的区别:线程时包含在进程之中,时进程中的实际运作单位。
1.2 进程的状态
状态 含义 R(TASK—RUNNING) 可执行状态(RUNNING,READY) S(TASK—INTERRUPTIBLE) 可唤醒睡眠状态 D(TASK—UNINTERRUPTIBLE) 不可唤醒睡眠状态 T(TASK—STOPPED) 暂停状态 z(EXIT_ZOMBIE) 僵死态
二、如何查看进程
2.1 pstree 查看进程树
2.2 ps 显示当前命令执行时的状态
2.2.1 命令格式
LINUX形式 UINUX形式 a 显示所有与终端相关的进程信息 -e 显示所有进程 x 显示所有与终端无关的进程信息 u 按照用户信息归类显示进程信息 -f 显示进程完整格式信息 f 按照层级结构显示进程信息 -H 按照层级结构显示进程的相关信息 o 按照指定信息显示进程信息 -o 按照指定信息显示进程信息 【注】指定信息的部分参数:pid(进程ID),comm(进程命令),nice(进程优先级),pri(进程优先级编号),pcpu(占用的cpu的百分比),stat(状态),ppid(父级进程ID)....
2.2.2 按字节查找,并进行排序
ps o pid,comm,%cup --sort=%cup
2.2.3 命令显示的信息
显示的目录 含义 USER 用户名称 PID 进程ID %CPU CPU占用比 %MEM 内存占用比 VSZ 占用虚拟内存大小 RSS 占用常驻内存大小 STAT 当前状态 START 进程运行时间 TIME 占用CPU时间 COMMAND 进程命令 TTY 字符终端
2.3 pgrep 显示指定信息进程
-u 显示指定用户进程信息(+进程ID) -U 显示指定用户进程信息(+进程名称) -t 显示相应的进程终端 -l 显示进程名称 -a 显示完整格式的子进程 -P 显示指定进程的子进程(+进程ID) 2.4 pidof 根据进程名称获取pid
为了方便查找,我们可以直接根据所要查找的进程的名称,直接查找pid
格式: pidof cat(进程名)
2.5 top 进程的详细参数
2.5.1 top中进程详解
top 系统当前时间 up 系统运行时间 user 登录的用户 load average 平均负载1分钟 5分钟 15分钟的队列长 task 任务数量 %cpu us cpu占用百分比 用户空间占用 sy 内核空间占用 ni nice调整时间 id 空闲时间 wa 等待时间 hi 处理硬件终端 si 处理软件终端 st 被虚拟化程序所占用的百分比 mem 物理内存 swap 交换分区占用 【注】1.平均负载:在特定时间间隔内运行队列中的平均进程树。用于描述cpu的运行效率。
2.交换分区:当真实物理内存不够用时,创建一定的虚拟内存,用于暂储,此虚拟内存为交换分区。
2.5.2 top 内部参数(直接在界面使用)
输入字符 效果 P CPU所占百分比排序 M 没存所占百分比排序 T 累计占用CPU时间 I 开启/关闭uptime信息 t 开启/环比task&cpu信息 s 调整刷新频率 k 终止进程 u 查看指定用户进程 在进程界面,执行相应的命令,就会有相应的效果,这里不一一列举,若有问题,欢迎留言。
2.5.3 命令参数
参数 效果 -d 指定刷新时间间隔 -b 按批次方式显示 -n 显示批次的次数,往往和-b结合起来使用
三、进程优先级
3.1 按照资源占用划分进程类型
资源使用量 进程类型 cpu使用密集 CPU-Bound I/O使用密集 I/O-Bound
3.2 优先级的范围对Linux而言优先级被分为固定的个数(0-139)可,按照如下规则分类:
3.3 nice值
分类 含义 1-99为实时有(动态)优先级 数字越大优先级越高,不需要手动处理,系统自用 100-139为静态优先级 数字越小优先级越高 nice值的范围:-20~19对静态优先级的100~139
nice值的操作:普通用户可以调低优先级,超级用户任意调整
优先级的命令:ps ax -0 nice,pid,comm
nice -n 优先级 程序
renice - n 优先级 程序pid
四、进程前后台调用
命令 含义 jobs 查看后台任务 ctrl+z 将当前任务打入后台运行 bg 激活后台进程 fg 调回后台进程 & 在后台运行
五、信号
Linux中信号的查看指令:man 7 signal
5.1 可控信号的分类
信号 含义 1 刷新,对进程的配置进行重新装载 2 中断键盘输入,中断接口输出 3 退出键盘,ctrl+/改变鼠标当前状态 9 强制结束 15 正常关闭,可能会被阻塞 18 激活进程 19 强制暂停,不可被阻塞 20 正常暂停,可能会被阻塞
5.2 信号指令
格式 含义 kill 信号 pid 根据信号不同,对进程进行相应操作 killall 信号 进程名称 根据信号,对该名称下的所有进程进行相应的操作 pkill 信号 进程名称 根据信号,对该名称下的所有进程进行相应的操作
六、守护进程
6.1基础概念
守护进程就是我们通常说的Daemon进程时Linux首台执行的服务进程,是独立于控制器终端、周期性的执行某种任务或等待处理某些发生事情,不会随着终端的关闭而停止,直到接受停止信息才会结束的一部分进程。
6.2 守护进程类型
类型 应用范围 Sysv init 经典的守护进程类型沿用到rhtl6 upstart 做到并行启动rhtl6中的应用 systemd 独立完成启动,rhtl7中使
6.3 systemctl的用法systemctl主要是对系统的一些文件进行控制操作,命令格式如下:
命令格式 效果 systemctl list-unit-files 查看服务开机时的状态列表 systemctl list-units 查看当前服务的状态列表 systemctl list-denpendencies 查看服务的依赖性(例:子进程对父进程的依赖) systmctl start service 开启目标服务 systemctl stop service 关闭目标服务 systemctl restart service 重启目标服务(产生新的进程) systemctl status service 查看目标服务状态 systemctl reload service 重新加载服务配置(不产生新的进程) systemctl enable service 设定服务开机启动 systemctl enable -now service 设定服务开机启动,并当前启动 systemctl disable service 设定服务开机关闭 systemctl set-default multi-user.target 设定系统运行级别为无图形模式 systemctl set-defult graphical.target 设定系统运行级别为图形模式 【注】服务中的状态:
static 固定的不用管,依赖于其他服务的启动与否
masked 冻结的服务
disable 不会自动开启
enable 会自动开启
若根据实验进行,均可得到相应的结果,这里不一一展示,若在操作过程中有任何问题,欢迎留言评论,我会尽自己所能第一时间为您解答!
上述为Linux下系统中的进程的基本介绍,若有问题,欢迎大家指出;因实验有时结果会覆盖上一条命令的操作,若上述内容还有所不懂,欢迎留言,会在第一时间给尽自己所能,给大家解决。愿上述内容有所用!