4. RedHat认证-进程管理

本文介绍了RedHat认证中关于进程管理的基础概念,包括进程定义、资源占用、进程查看工具(如ps和top)、进程状态解读、进程管理(如终止进程和查看健康状态)、服务与系统管理(如systemd)等内容,帮助读者掌握Linux进程管理的关键技能。
摘要由CSDN通过智能技术生成

4. RedHat认证-进程管理

1.进程概念

进程就是正在运行中的程序或者命令

每一个进程都是运行的实体,都有自己的地址空间,并占有一定的资源空间

程序消耗的是磁盘资源、进程消耗的是内存和CPU资源

进程会占用四类资源(CPU 、内存、磁盘、网络)

进程至少会占用 CPU、内存

2. 进程管理

进程管理的作⽤

(1)判断服务器健康状态

(2)查看系统中所有进程

(3)“杀死”进程

3.进程查看

ps -aux命令 和 ps -ef 命令

[root@Freedom ~]# ps -aux 
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.4 171640 16060 ?        Ss   20:00   0:02 /usr/lib/systemd/systemd rhgb --switched-root --system --deserialize 31
root           2  0.0  0.0      0     0 ?        S    20:00   0:00 [kthreadd]
root           3  0.0  0.0      0     0 ?        I<   20:00   0:00 [rcu_gp]
root           4  0.0  0.0      0     0 ?        I<   20:00   0:00 [rcu_par_gp]
root           6  0.0  0.0      0     0 ?        I<   20:00   0:00 [kworker/0:0H-events_highpri]
root           7  0.0  0.0      0     0 ?        I    20:00   0:00 [kworker/0:1-events]
root           9  0.0  0.0      0     0 ?        I<   20:00   0:00 [mm_percpu_wq]
root          10  0.0  0.0      0     0 ?        S    20:00   0:00 [rcu_tasks_kthre]
root          11  0.0  0.0      0     0 ?        S    20:00   0:00 [rcu_tasks_rude_]
root          12  0.0  0.0      0     0 ?        S    20:00   0:00 [rcu_tasks_trace]


分析输出结果
①USER:该进程是由哪个⽤户产⽣的
②PID:进程的ID号
③%CPU:该进程占⽤CPU资源的百分⽐,占⽤越⾼,进程越耗费资源
④%MEM:该进程占⽤物理内存的百分⽐,占⽤越⾼,进程越耗费资源
⑤VSZ:该进程占⽤虚拟内存的⼤⼩,单位KB
⑥RSS:该进程占⽤实际物理内存的⼤⼩,单位KB
⑦TTY:该进程是在哪个终端中运⾏的。其中TTY1-TTY6代表本地控制台终端。TTY2-6是本地的字符界⾯终端,
TTY1是图形终端。PTS/0-255代表虚拟终端。如果是“?”,则表示该进程是由内核直接产⽣,⽽不是任何的终端产⽣。
⑧STAT:进程状态。常⻅的状态有R:运⾏、S:睡眠、T:停⽌、s:包含⼦进程、+:位于后台
⑨START:该进程的启动时间
⑩TIME:该进程占⽤CPU的运算时间,注意不是系统时间
⑪COMMAND:产⽣此进程的命令名
[root@rhel7-0 ~]# ps –le或 ps -ef
①-l表示显示更详细的信息
②-e表示显示所有的进程

top 命令 (动态的查看进程信息)

#动态查看系统进程
top 命令
[root@rhel7-0 ~]# top [选项]
-d表示秒数,指定top命令每隔⼏秒更新,默认是3秒

在top命令的交互模式当中可以执⾏的命令:
1.? 或h:显示交互模式的帮助
2.P:以CPU使⽤率排序,默认就是此项
3.M:以内存的使⽤率排序
4.N:以PID排序
5.q:退出top

top命令显示的信息详解

在这里插入图片描述

  • 第⼀⾏是任务队列信息

21:07:34 : 系统当前时间

up 1:06 : 系统运行的时间,运行了多久

2 users:系统当前登录的用户数量

load average : 0.00 ,0.00 ,0.00 : 系统在之前1分钟,5分钟,15分钟的平 均负载值。⼀般认为⼩于1时负载较⼩。 如果⼤于1,系 统已经超出负荷

  • 第⼆⾏是进程信息

Tasks: 316 total 系统中的进程总数

1 running : 运行的进程数

315 sleeping : 睡眠的进程数量

0 stopped : 停止的进程数量

0 zombie : 僵尸进程 (一般一两个僵尸进程是属于正常情况,不必过于担心)

  • 第三⾏是 cpu 信息

0.1%us ⽤户模式占⽤的CPU百分⽐

0.1%sy 系统模式占⽤的CPU百分⽐

0.0%ni 改变过优先级的⽤户进程占⽤的CPU百分⽐

99.8%id 空闲CPU的CPU百分⽐

0.0%wa 等待输⼊/输出的进程的占⽤CPU百分⽐

0.0%hi 硬件中断请求服务占⽤的CPU百分⽐

0.0%si 软中断请求服务占⽤的CPU百分⽐

0.0%st st(steal time)虚拟时间百分⽐。就是当有虚拟机时,虚拟CPU等待时机CPU的时间 百分⽐

  • 第四⾏是物理内存信息

3696.9 total 物理内存的总量,单位KB

1844 free 空闲的物理内存数量

1200.6经使⽤的物理内存数量

652.6 作为缓冲的内存数量

  • 第五⾏是交换分区(swap)信息

2048 total 交换分区(虚拟内存)的总大小

2048 free 空闲交换分区的大小

0 used 已经使用的大小

avail 可用的大小

进程树(pstree)

[root@rhel7-0 ~]# pstree [选项]
-p表示显示进程的PID -p可以显示所有的⼦进程,并且显示PID

在这里插入图片描述

在这里插入图片描述

4.终止进程

kill 命令

参数-l,查看所有进程信号

常⽤信号说明

信号代号信号名称说明
1SIGHUP该信号让进程⽴即关闭,然后重新读取配置⽂件之后重启
2SIGINT程序终⽌信号,⽤户终⽌前台进程。相当去输出ctrl+c快捷键
9SIGKILL⽤来⽴即结束程序的运⾏,本信号不能被阻塞、忽略。⼀般 ⽤于强制终⽌进程
15SIGTERM正在结束进程的信号,kill命令的默认信号。有时如果进程已 经发⽣问题,这个信号是⽆法正常终⽌进程的,我们这时才 会尝试SIGKILL信号,也就是信号9
18SIGCONT该信号可以让暂停的进程恢复执⾏,本信号不能被阻断
19SIGSTOP该信号可以暂停前台进程,相当于输⼊ctrl+z快捷键。本信号 不能被阻断
[root@circle ~]# kill -9 32425    # 强制终⽌PID为32425的进程
[root@circle ~]# kill -1 32411    # 重启PID为32411的进程
[root@circle ~]# kill -15 32452   #相当于 kill 32452,正常结束PID为32452的进程

killall 命令

使⽤killall命令终⽌进程

[root@circle ~]# killall [选项] [信号] 进程名      # 按照进程名杀死进程
①-i参数会询问是否要杀死某个进程
②-I参数会忽略进程名的⼤⼩写

killall用法

killall命令⽤法
[root@circle ~]# pstree -p | grep httpd
 |-httpd(44902)-+-httpd(44903)
 | |-httpd(44904)
 | |-httpd(44905)
 | |-httpd(44906)
 | `-httpd(44907)
[root@circle ~]# killall -9 httpd
[root@circle ~]# pstree -p | grep httpd

pkill命令

⽤pkill命令终⽌进程

[root@circle ~]# pkill [选项] [信号] 进程名    # 按照进程名杀死进程
# -t + 终端号:按照终端号踢出⽤户
[root@circle ~]# pkill -t  pts/1 
[root@circle ~]# pkill -f httpd  # -f 指定进程名字

建议服务还是使⽤正常的systemctl stop xxx.service 来停⽌服务,只有在正常停⽌不⽣效后才建议使⽤kill命令终⽌进程

作业调度(jobs)

后台进程:看不到的就是后台进程
前台进程:所能看到的就是前台进程
如何执行一个后台进程
例如 cat命令
cat & # 加上&,就可以让他运行在后台
jobs 就可以看到后台运行的任务

但,请注意,并不是所有的任务都可以运行在后台,cat就是一个

前后台任务的切换

当前台进程在运行时,按ctrl+z 切换到后台,但是他是stopped的,如果想让他继续运行,就需要kill -18 %1 继续运行
或者bg %1 也可以让他继续在后台运行
fg  %1 让后台进程放在前台运行

服务管理

服务就是进程,进程不一定是服务

服务是具备一定功能的进程,有的进程并不具备服务的功能

Linux里的第一个进程,就是系统所有进程的父进程。
在rhel 6 之前,用的第一个Linux进程是init ,串行启动进程,速度慢
在rhel 7 之后,用的第一个Linux系统进程是systemd 并行启动进程,速度极快
systemd 管理服务操作
systemd 管理的内容不仅仅有service ,service只是当中的一个。它systemd管理的单位是unit 
[root@Freedom ~]# systemctl status NetworkManager.service 
[root@Freedom ~]# systemctl stop NetworkManager.service 
[root@Freedom ~]# systemctl start NetworkManager.service 
[root@Freedom ~]# systemctl restart NetworkManager.service 
[root@Freedom ~]# systemctl enable NetworkManager.service 	# 开机自启动
[root@Freedom ~]# systemctl disable NetworkManager.service  # 取消开机自启动


[root@Freedom ~]# systemctl is-active NetworkManager.service 
active
[root@Freedom ~]# systemctl is-enabled NetworkManager.service #在脚本中很好用
enabled
target 管理
target 就是一个盒子,这个盒子里包含了众多的service而已。
按ctrl+alt+F1~F6 可快速切换到字符界面
[root@Freedom ~]# systemctl isolate graphical.target  # 这个命令可以切换到图形界面
[root@Freedom ~]# systemctl isolate multi-user.target  # 这个命令可以切换到字符界面
  • 27
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值