学习Linux运维的个人笔记:进程管理——下(二十九)

一、管理进程状态

  • 进程运行起来: (程序, 通过一推命令+参数+执行的程序=进程)
  • 当程序运行为进程后,如果希望停止进程,怎么办呢? 那么此时我们可以使用linux的kill命令对进程发送关闭信号。当然除了kill、还有killall,pkill。
  • 对于kill而言
数字编号信号含义信号翻译
1SIGHUP加载服务的配置,主进程不会重新启动,但是子进程会被干掉,重新拉起新的子进程
9SIGKILL强制杀死,谨慎使用。
15SIGTERM正常停止进程信号,如果进程还有任务在处理,那么则处理完成后,进程会自动退出。
yum -y install vsftpd
systemctl start vsftpd
ps aux|grep vsftpd
#发送重载信号,例如 vsftpd 的配置文件发生改变,希望重新加载
kill -1 9160
#发送停止信号,当然vsftpd 服务有停止的脚本 systemctl stop vsftpd
kill 9160
#发送强制停止信号,当无法停止服务时,可强制终止信号
kill -9 9160
  • Linux系统中的killall、pkill命令用于杀死指定名字的进程。我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall、pkill把这两个过程合二为一,是一个很好用的命令。
#例1、通过服务名称杀掉进程
pkill nginx
killall nginx

#例2、使用pkill踢出从远程登录到本机的用户,终止pts/0上所有进程, 并且bash也结束(用户被强制退出)
pkill -9 -t pts/0

二、管理后台进程

  • 后台进程的概念:
    通常进程都会在终端前台运行,一旦关闭终端,进程也会随着结束,那么此时我们就希望进程能在后台运行,就是将在前台运行的进程放入后台运行,这样及时我们关闭了终端也不影响进程的正常运行。
  • 早期的时候大家都选择使用&符号将进程放入后台,然后在使用jobs、bg、fg等方式查看进程状态,但太麻烦了。也不直观,所以我们推荐使用screen。
#1.安装
yum install screen -y
#2.开启一个screen窗口,指定名称
screen -S study_test
#3.在screen窗口中执行任务即可

#4.平滑的退出screen,但不会终止screen中的任务。注意: 如果使用exit 才算真的关闭screen窗口
ctrl+a+d

#5.查看当前正在运行的screen有哪些
screen -list
	There is a screen on:
    	1111.study_test    (Detached)
	1 Socket in /var/run/screen/S-root

#6.进入正在运行的screen
screen -r study_test
screen -r 1111

三、进程的优先级

  • 什么优先级
    优先级指的是优先享受资源,比如排队买票时,军人优先、老人优先。等等

  • 系统中如何给进程配置优先级?
    在启动进程时,为不同的进程使用不同的调度策略。
    nice 值越高: 表示优先级越低,例如+19,该进程容易将CPU 使用量让给其他进程。
    nice 值越低: 表示优先级越高,例如-20,该进程不倾向于让出CPU。 最高的优先级

      低							正常								高
      +20							  0								-20
    
  • nice指定程序的优先级。语法格式 nice -n 优先级数字 进程名称

#1.开启vim并且指定程序优先级为-5
nice -n -5 vim &
[1] 98417

#2.查看该进程的优先级情况
ps axo pid,command,nice |grep 98417
 98417 vim                         -5

四、系统平均负载

  • 平均负载是指单位时间内,系统处于 可运行状态R 和 不可中断状态D 的平均进程数,也就是平均活跃进程数,
    平均负载其实就是单位时间内的活跃进程数。 ( 可运行状态R + 不可中断状态D )
    平均负载要看的是三个值,不是一个。
  • 可运行状态和不可中断状态是指:
  1. 可运行状态进程,是指正在使用 CPU 或者正在等待 CPU 的进程,也就是我们ps 命令看到处于 R 状态的进程。
  2. 不可中断进程,(你做什么事情的时候是不能打断的?) 系统中最常见的是等待硬件设备的 I/O 响应,也就是我们 ps 命令中看到的 D 状态(也称为 Disk Sleep)的进程。

例如: 当一个进程向磁盘读写数据时,为了保证数据的一致性,在得到磁盘回复前,它是不能被其他进程或者中断打断的,这个时候的进程就处于不可中断状态。如果此时的进程被打断了,就容易出现磁盘数据与进程数据不一致的问题。所以,不可中断状态实际上是系统对进程和硬件设备的一种保护机制。

场景描述
  • CPU 密集型进程:使用大量 CPU 计算会导致平均负载升高,此时这两者是一致的; ( 视频的转码 加密 计算圆周率 )
  • I/O 密集型进程:等待 I/O 也会导致平均负载升高,但 CPU 使用率不一定很高;
  • 大量的 CPU 进程调度:会导致平均负载升高,此时的 CPU 使用率也会比较高。
一般排除进程故障的步骤
  1. uptime看看负载的情况 ( 超过了 cpu的核心 )
  2. top看是cpu的使用率高 还是 wa等待高 还是内核态占用cpu高 、软中断高 、nice优先级进程占用cpu、
  3. top看是哪个进程
  4. 追踪这个进程的情况。
  5. 看看是否存在异常日志。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux运维工程师Markdown笔记是指Linux系统运维工程师使用Markdown语言来记录和组织与工作相关的笔记。Markdown是一种轻量级的标记语言,具有简洁、易读、易写的特点,适合用于文档编写和笔记整理。 首先,Linux运维工程师经常需要处理大量的技术文档和操作指南。使用Markdown可以轻松编写格式清晰、易于阅读的文档。Markdown的语法简单直观,只需要使用少量的标记符号,比如井号(#)用于标题、星号(*)用于强调等,使得编辑变得快捷高效。 其次,Markdown支持代码框和代码高亮功能,对于Linux运维工程师来说非常有用。他们可以使用Markdown编写包含代码的文档,以便在需要时共享和复用。使用Markdown标记代码块可以使代码在文档中保持格式整齐,并使用适当的语法高亮显示,增强可读性。 另外,Markdown还支持快速插入图像、链接、表格等元素,这对于Linux运维工程师来说也是很有价值的。他们可以将截图、示意图等插入到Markdown笔记中,更直观地展示问题和解决方案,提高沟通效率。 最后,Markdown对于版本控制工具的支持也很好。Linux运维工程师通常使用Git等版本控制工具来管理代码和文档,而Markdown的纯文本格式使其可以轻松地与Git集成,并进行版本追踪和变更比较。 总的来说,作为一种简洁、灵活且易于上手的标记语言,Markdown对于Linux运维工程师来说是一种理想的工具,可以帮助他们更好地整理笔记、编写文档,并与团队成员分享和协作。使用Markdown笔记Linux运维工程师可以更高效地记录和共享工作中的知识和经验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值