RedHat Linux 管理系统中的进程

进程的分析

含义:

• 程序是静态的文件
• 进程是运行中的程序的一个副本
• 进程存在生命周期(准备期,运行期,终止期)

进程的状态
状态定义
R(TASK_RUNNING)可执行状态(RUNNING,READY)
S(TASK_INTERRUPTIBLE)可唤醒睡眠状态
D (TASK_UNINTERRUPTIBLE)不可唤醒睡眠状态
T(TASK_STOPPED)暂停状态
z( EXIT_ZOMBIE)僵死态

进程查看

命令 “pstree” 可以查看当前的所有进程
在这里插入图片描述
可以看到使用pstree查看的进程是用树状图来呈现给我们,但是我们大多时候这样看时比较麻烦的,所以另一种 “ps” 命令来进行查看。
首先我们先了解一下ps命令的参数有哪些

参数含义
a显示与终端相关进程(BSD)
x显示所有与终端无关进程(BSD)
u以用户为归类来显示进程状态信息(BSD)
f层级结构显示进程信息
o指定查看选项,pid,comm,nice,pri,pcpu,stat,ppid
-e显示所有进程(uinx)
-f显示完整格式信息(unix)
-H层级结构显示进程的相关信息
-o指定查看选项,pid,comm,nice,%cpu,%mem,nice

了解之后我们来实验看看
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

以上就是展示了部分参数的用法和效果,可以看到结果都是用列表展示的,这些表格每列都代表什么呢?下面我们详细说明一下

字段解释
USER用户名称
PID进程id
%CPUcpu用量百分比
%MEM内存用量百分比
VSZ占用虚拟内存大小
RSS常驻内存集大小
TTY字符终端
STAT进程状态
START运行时间
TIME占用cpu时间
COMMAND进程名称

这些列表的名称我们用筛选信息参数 “o” “-o” 时,加在后面查看信息,例:

[root@workstation Desktop]# ps o user,pid,comm,%cpu
[root@workstation Desktop]# ps -o user,pid,comm,%cpu

此外例如查看cpu使用量或内存使用量时,他们都是有数值的,所以我们加额外的参数使参看时可以按照顺序或倒序来排列,这个参数就是 "–sort=参数” "–sort=-参数” ,具体的使用方法如下:

[root@workstation Desktop]# ps o pid,nice,comm,uid,%cpu,%mem --sort=%mem
[root@workstation Desktop]# ps o pid,nice,comm,uid,%cpu,%mem --sort=-%mem

参数前加 “-” 表示倒序展示,效果如下
在这里插入图片描述
在这里插入图片描述

pgrep 命令

当我们想要更精确的查看某类进程或某个用户的进程,我们使用pgrep命令,首先我们了解它的参数

参数用途
-u(加uid)显示指定用户进程
-U(加用户名)显示指定用户进程
-t(加tty)显示指定用户进程
-l显示进程名称
-a显示完整格式进程名
-P(加pid)显示指定进程的子进程

我们来展示一下部分效果
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

pidof 命令

根据进程名称查看pid
例:打开一个gedit
在另一个shell界面输入pidof gefit

[root@workstation Desktop]# gedit aaa

[root@workstation Desktop]# pidof gedit
4517

这个pid就是刚开进程的pid
除此之外还有一个方法查看打开的进程信息
命令:ps aux | grep 名称
在这里插入图片描述

top

top类似windows里的任务管理器,展示了系统运行的cpu,mem,运行的进程实时状态
在这里插入图片描述
先来了解top内部的参数和top命令的参数

内部参数用途
Pcpu百分比排序
M内存百分比排序
T累计占用cpu时间排序
l开启/关掉uptime信息
t开启/关闭task&cpu信息
s调整刷新频率
k终止进程
u查看指定用户进程

因为这些参数的效果不是很突出适合展示,所以还是在个人实操中体验

top命令参数用途
-d指定刷新间隔
-b以批次方式显示
-n显示批次数量

此参数展示效果同上,简单说明一下-b参数就是将每一批刷新出的数据展示在你的shell界面上,一直累加。-n后面加数字,效果就是top共刷新几次后停止。

top界面详细信息解释
第一行:
在这里插入图片描述
top 系统当前时间,up 系统运行时常,user 登录当前系统的用户数量,load average 平均负载 1分钟、5分钟、15 分钟的队列长度(uptime)

第二行:
在这里插入图片描述
task 任务,包含了总任务,运行中的,休眠的,停止的,僵死的

第三行:
在这里插入图片描述
%cpu cpu占用百分比
• us 用户空间
• sy 内核空间
• ni nice调整时间
• id 空闲时间
• wa 等待io
• hi 处理硬件中断
• si 处理软件中断
• st 被虚拟化程序占用的百分比

第四行:
在这里插入图片描述
mem 物理内存,包括总量,空闲量,使用量,可回收量

第五行:
在这里插入图片描述
swap 交换分区占用

再往下就是进程信息展示


进程优先级

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

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

进程优先级范围的划分:

  • 对Linux而言优先级被划分成固定个数(0-139)
  • 1-99为实时有优先级,数字越大优先级越高,不用手动处理系统自用
  • 100-139为静态优先级,数字越小优先级越高
N ICE值
  • NICE值:-20~19对应进程优先级
  • 普通用户只可以调低优先级,超级用户任意调整

优先级的命令:
• ps ax –o nice,pid,comm
• nice –n 优先级 程序
• reince –n 优先级 程序pid
命令效果展示
我们开启cat程序,打开另一个shell,使用命令和管道过滤cat程序的进程
在这里插入图片描述
看到目前cat程序的nice值是0,我们现在修改看看结果
在这里插入图片描述
修改后从原来的0,改变位5。
此外我们可以在程序开启是直接设置nice值
在这里插入图片描述
这样就不需要我们在开启程序后再次去设置一次,命令中出现的&符号表示开启程序,但运行在后台,防止程序占用当前的界面。


进程前后台调用

此操作就了为了在shell操作输入中不会被其他程序占用界面,将需要占用界面的程序放到后台需要的时候再调用出来,方便操作。
首先了解所需要的操作命名

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

实验演示
开启两个程序cat、wc,都用ctrl+z打入后台,再用jobs命令查看
在这里插入图片描述
操作后得到如下结果,jobs命令出现的两行,前面的数字是对应的编号,执行激活和调回命令时需要加对应的编号,编号后面是进程的状态,看到是停止的,在后面是名称。
接下来开启gedit程序,试试能不能输入,再打入后台,试试能否输入,再用bg激活试试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
经过3步实验可以看出,程序打开是占用里shell界面并且可以正常使用,但被放入后台后,状态就成了停止无法使用,激活后就又正常了。
fg就是将放入后台的程序再调回前台界面
在这里插入图片描述
以上操作命令后的数字就是进程用jobs查看到的对应编号。
&命令是在开启程序的时候直接加到后面使开启的程序直接进入后台。
在这里插入图片描述
这样就在不占用当前界面的条件下执行。


信号 signal

在Linux中信号可以看作控制进程一种方式,详细的说明可以用命令 man 7 signal 去查看
在这里插入图片描述
在此我们展示一些可供用户来操作的信号

可控信号含义
1刷新
2中断键盘输入
3退出键盘
9强制结束
15正常关闭,可能会被拒绝
18激活进程
19强制暂停
20正常暂停,可能会被拒绝

信号的命令用法:

  • kill 信号 pid
  • killall 信号 名称 (执行同样名称的所有进程)
  • pkill 参数 pid (参数通过 pkill --help 查看)

系统守护进程

守护 进 程 的 定 义
守护进程就是通常讲Daemon进程,是linux后台执行的服务进程,是独立于控制终端、周期性地执行某种任务或等待处理某些发生事件,不会随终端关闭而停止,直到接受停止信息才会结束。

守护 进 程 类 型

守护进程类型使用系统及特点
Sysv init经典的守护进程类型延用到rhel6前
upstart做到并行启动rhel6中应用
systemd独立完成启动,rhel7中使用至今

systemctl指令用法

指令用途
systemctl list-unit-files查看服务开机运行情况
systemctl list-units查看服务当前运行情况
systemctl list-dependencies service查看服务依赖性
systemctl status service查看服务状态[root@workstation Desktop]# systemctl status sshd
systemctl start service开启服务
systemctl stop service关闭服务
systemctl reload service重新加载服务配置[root@workstation Desktop]# systemctl reload sshd 重加载不改变服务pid
systemctl restart service重新启动服务[root@workstation Desktop]# systemctl restart sshd 会改变pid
systemctl enable service设定服务开启启动
systemctl enable --now service设定服务开机启动并开启服务
systemctl disable service设定服务开机关闭
systemctl set-default multi-user.target设定系统运行级别为无图形网络模式
systemctl set-default graphical.target设定系统运行级别为图形网络模式

效果展示
在这里插入图片描述
可以看到系统的开启服务开机运行情况以及状态
在这里插入图片描述
在这里插入图片描述
以上就是对守护进程操作指令的部分展示


进程在系统中随时存在,熟练掌握进程的调用查看,帮助我们在使用中效率更高

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Howei__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值