【SRE-成长进阶】(二)Linux系统管理体系之进程管理

🌈个人主页Dream云原生梦工厂
🔥系列专栏:《夜莺(N9e-categraf)监控从入门到精通》、《SRE高级运维 从0到1》、《解决日常问题的小case》
🔖
“  乾坤未定,你我皆黑马。”

---------------------------------------------------------------------------------------------------------------------------------

目录

一:什么是进程

二:进程分类(异常进程)

1.僵尸进程 ⭐️⭐️⭐️⭐️⭐️

2.孤儿进程 ⭐️

3.演示僵尸进程 ⭐️⭐️

   ① 首先写一个c文件模拟僵尸进程。

   ②创建完成后中通过gcc生成僵尸进程的命令文件。

   ③top命令查看是否有僵尸进程。

   ④过滤出僵尸进程。

   ⑤pstree -p查看僵尸进程的父进程(上级进程)。

   ⑥直接结束僵尸进程

   ⑦结束僵尸进程的父进程

三:进程监控命令 ⭐️⭐️⭐️⭐️⭐️

 1.ps命令格式

  ①概述

  ②ps aux每一列详解

  ③进程状态⭐️⭐️⭐️⭐️⭐️

 2.top命令格式

 3.案例

   ①过滤出某进程的信息 🌟🌟🌟🌟🌟

   ②按照树形结构查看进程信息 🌟🌟🌟🌟🌟

   ③根据要求,只显示某些内容 🌟🌟🌟🌟🌟

四:后台管理 ⭐️⭐️⭐️⭐️⭐️

 1. &方法 ⭐️⭐️⭐️⭐️⭐️

 2. nohup命令 &方法 ⭐️⭐️⭐️⭐️⭐️

 3. ctrl+z 

 4. screen  

五:杀手三剑客

六:负载 

 1. 概述

 2.负载高? ⭐️⭐️⭐️⭐️⭐️ 排查流程

一:什么是进程

名字   含义
程序  程序 安装包,程序代码,app,存放在磁盘上面.
进程⭐️ 运行起来的程序,命令,服务(远程连接服务,网络服务)都可以称作进程。 运行在内存中。
守护进程 守护进程, 一直运行的进程. 也可以叫做服务.

二:进程分类(异常进程)

1.僵尸进程 ⭐️⭐️⭐️⭐️⭐️

    僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。 
    僵尸进程:由于各种原因导致某个进程挂掉了,但是进程本身仍然存在,还占用着系统资源,这种异常进程僵尸进程。
    查找:可以通过ps aux过滤 Z状态即可找出僵尸进程或top命令查看。
    解决: 方案01:找出僵尸进程的上级进程,结束进程即可。
              方案02:如果上级进程是主进程(pid为1进程),则需要重启Linux系统。

               温馨提示: pstree属于psmisc软件包,yum安装psmisc即可.

2.孤儿进程 ⭐️

    孤儿进程是指在计算机操作系统中,当一个进程的父进程先于它结束运行(或被终止),而该进程仍在运行时,这个子进程就称为孤儿进程(Orphan Process)。一旦发生这种情况,操作系统中的init进程(进程号通常是1,或者在Systemd系统中是systemd)会自动接手这些孤儿进程,成为它们的新父进程。init进程会持续监控所有被其收养的孤儿进程,直到它们自然结束为止,并负责收集它们的退出状态信息,从而确保系统资源得到正确释放,不会因为父进程缺失而导致资源泄露等问题

3.演示僵尸进程 ⭐️⭐️


    ① 首先写一个c文件模拟僵尸进程。

#include <sys/types .h>
#include <sys/wait.h>
#include <errno.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[])
{
pid t pid;
pid = fork();
if (pid == 0) {
int iPid = (int)getpid();
fprintf(stderr,"I am child,%d\n",iPid);
sleep(1);
fprintf(stderr,"Child exits\n");
return EXIT SUCCESS;
}
int iPid = (int)getpid();
fprintf(stderr,"I am parent,%d\n",iPid);
fprintf(stderr,"sleep....\n");
sleep(600);
fprintf(stderr,"parent exits\n");
return EXIT SUCCESS;
}

    创建完成后中通过gcc生成僵尸进程的命令文件。

[root@king tools]# gcc zombine.c -o zombine 
[root@king tools]# ll zombine* 
-rwxr-xr-x 1 root root 8648 7月  27 10:03 zombine
-rw-r -r - 1 root root  591 7月  27 10:03 zombine.c
运行僵尸进程
./zombine

    ③top命令查看是否有僵尸进程。

    ④过滤出僵尸进程。

ps aux |grep Z #找出僵尸进程的pid
USER       PID %CPU %MEM   VSZ   RSS TTY     STAT START   TIME COMMAND
root       2188  0.0  0.0      0     0 pts/0   Z+   10:04   0:00 [zombine] <defunct>
root       2191  0.0  0.0 112824   960 pts/1   R+   10:05   0:00 grep -color=auto Z
发现僵尸进程的pid是2188

    ⑤pstree -p查看僵尸进程的父进程(上级进程)。

pstree -p |grep 2188
           ├─sshd(1344)─┬─sshd(1641)───bash(1643)───zombine(2187)───zombine(2188)

    ⑥直接结束僵尸进程

kill  2188 #失败,无法直接结束僵尸进程

    ⑦结束僵尸进程的父进程

kill  2187 #成功
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Dream云原生梦工厂

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

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

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

打赏作者

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

抵扣说明:

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

余额充值