管理Linux系统中的进程

 写在前面:因个人学习使用为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        查看进程树

图 1 进程树


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 按用户分类以层级结构显示终端有关的进程

 

图 3 在unix下显示的层级结构

 

图 4 按照一定的要求显示相应的进程信息

2.2.2  按字节查找,并进行排序

          ps o pid,comm,%cup --sort=%cup

图 5 按照cpu所占百分比排序

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)
图 6 显示指定进程的信息

2.4 pidof        根据进程名称获取pid

为了方便查找,我们可以直接根据所要查找的进程的名称,直接查找pid

格式: pidof cat(进程名)

图 7 按照名称直接查找

2.5 top            进程的详细参数

2.5.1 top中进程详解

top系统当前时间
up系统运行时间
user登录的用户
load average平均负载1分钟 5分钟 15分钟的队列长
task任务数量
%cpuuscpu占用百分比用户空间占用
sy内核空间占用
ninice调整时间
id空闲时间
wa等待时间
hi处理硬件终端
si处理软件终端
st被虚拟化程序所占用的百分比
mem物理内存
swap交换分区占用

【注】1.平均负载:在特定时间间隔内运行队列中的平均进程树。用于描述cpu的运行效率。

            2.交换分区:当真实物理内存不够用时,创建一定的虚拟内存,用于暂储,此虚拟内存为交换分区。

图 8 top中的标题含义

2.5.2 top     内部参数(直接在界面使用)

输入字符效果
PCPU所占百分比排序
M没存所占百分比排序
T累计占用CPU时间
I开启/关闭uptime信息
t开启/环比task&cpu信息
s调整刷新频率
k终止进程
u查看指定用户进程
图 9 top中参数的调整

在进程界面,执行相应的命令,就会有相应的效果,这里不一一列举,若有问题,欢迎留言。

2.5.3 命令参数

参数效果
-d指定刷新时间间隔
-b按批次方式显示
-n显示批次的次数,往往和-b结合起来使用
图 10 top命令的参数


 

图 11 top命令中的参数

 

三、进程优先级

3.1 按照资源占用划分进程类型

资源使用量进程类型
cpu使用密集CPU-Bound
I/O使用密集I/O-Bound


3.2 优先级的范围

对Linux而言优先级被分为固定的个数(0-139)可,按照如下规则分类:

分类含义
1-99为实时有(动态)优先级数字越大优先级越高,不需要手动处理,系统自用
100-139为静态优先级数字越小优先级越高
3.3 nice值

nice值的范围:-20~19对静态优先级的100~139

nice值的操作:普通用户可以调低优先级,超级用户任意调整

优先级的命令:ps ax -0 nice,pid,comm

                         nice -n 优先级    程序

                         renice - n 优先级 程序pid

图 12 nice值的调整


四、进程前后台调用

命令含义
jobs查看后台任务
ctrl+z将当前任务打入后台运行
bg激活后台进程
fg调回后台进程
&在后台运行
图 13 后台任务的调整

 

五、信号

Linux中信号的查看指令:man 7 signal
5.1 可控信号的分类

信号含义
1刷新,对进程的配置进行重新装载
2中断键盘输入,中断接口输出
3退出键盘,ctrl+/改变鼠标当前状态
9强制结束
15正常关闭,可能会被阻塞
18激活进程
19强制暂停,不可被阻塞
20正常暂停,可能会被阻塞


5.2    信号指令

格式含义
kill 信号 pid根据信号不同,对进程进行相应操作
killall 信号 进程名称根据信号,对该名称下的所有进程进行相应的操作
pkill 信号 进程名称根据信号,对该名称下的所有进程进行相应的操作
图 14 进程与信号的操作


六、守护进程

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    会自动开启

图 15 查看启动时的列表清单
图 16 查看指定服务的状态

 

图 17 修改指定服务的开机状态
图 18 修改开启时采用非图形界面

 若根据实验进行,均可得到相应的结果,这里不一一展示,若在操作过程中有任何问题,欢迎留言评论,我会尽自己所能第一时间为您解答!

上述为Linux下系统中的进程的基本介绍,若有问题,欢迎大家指出;因实验有时结果会覆盖上一条命令的操作,若上述内容还有所不懂,欢迎留言,会在第一时间给尽自己所能,给大家解决。愿上述内容有所用!

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值