僵尸进程:就是已经结束了的进程,但是没有从进程表中删除。太多了会导致进程表里面条目满了,进而导致系统崩溃,倒是不占用其他系统资源。最后有defunct的标记,就表明是僵尸进程。

今天配置Redis的时候结束停止Redis服务的时候可能是误操作了,发生了上述的情况!

产生的原因:

每个Linux进程在进程表里都有一个进入点(entry),核心程序执行该进程时使用到的一切信息都存储在进入点。当用ps命令察看系统中的进程信息 时,看到的就是进程表中的相关数据。当以fork()系统调用建立一个新的进程后,核心进程就会在进程表中给这个新进程分配一个进入点,然后将相关信息存 储在该进入点所对应的进程表内。这些信息中有一项是其父进程的识别码。当这个进程走完了自己的生命周期后,它会执行exit()系统调用,此时原来进程表 中的数据会被该进程的退出码(exit code)、执行时所用的CPU时间等数据所取代,这些数据会一直保留到系统将它传递给它的父进程为止。由此可见,defunct进程的出现时间是在子进 程终止后,但是父进程尚未读取这些数据之前。

Linux系统寻找和杀掉僵尸进程

Linux服务器上,多少会出现一些僵尸进程,下面介绍如何快速寻找和消灭这些僵尸进程的方法:
首先,可以使用top命令来查看服务器当前是否有僵尸进程,下图中可以看到僵尸进程的提示,如果数
字大于0,那么意味着服务器当前存在僵尸进程:

我们发现存在33个僵尸进程!

用ps 命令和 grep命令寻找僵尸进程:

ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'

命令注解:

  • A 参数列出所有进程
  • o自定义输出字段,我们设定显示字段为stat(状态),ppid(父进程pid),pid(进程pid),cmd(命令行)这四个参数

因为状态为 z 或者 Z的进程为僵尸进程,所以我们使用grep 抓取stat 状态为zZ进程;

运行结果如下所示:

我这里直接杀死僵尸进程的父进程

[root@songqixiang bin]# kill -9 31112


完事儿!

僵尸进程以及如何处理僵尸进程相关推荐

  1. Linux如何处理僵尸进程

    目录 (一)什么是僵尸进程 (二)僵尸进程目的 (三)僵尸进程的处理 1.wait()函数 2.waitpid()函数 3.wait与waitpid区别 (四)僵尸进程的避免 (一)什么是僵尸进程   ...

  2. 【k8s】理解Docker容器的进程管理(PID1进程(容器内kill命令无法杀死)、进程信号处理、僵尸进程)

    文章目录 概述 1. 容器的PID namespace(名空间) 2. 如何指明容器PID1进程 3. 进程信号处理 4. 孤儿进程与僵尸进程管理 5. 进程监控 6. 总结 参考 概述 简介: Do ...

  3. linux里面有mysql的僵尸进程_Linux的僵尸进程处理1

    Linux中有两种异常的进程: 1.孤儿进程:应用通过fork进程后,父进程被kill或者exit,该父进程的子进程被1号进程接管.linux内核启动时候回启动0号进程,启动完毕后0号进程就处于空闲状 ...

  4. day34 并行并发、进程开启、僵尸及孤儿进程

    day34 并行并发.进程开启.僵尸及孤儿进程 1.并行与并发 什么是并行? 并行指的是多个进程同时被执行,是真正意义上的同时 什么是并发? 并发指的是多个程序看上去被同时执行,这是因为cpu在多个程 ...

  5. c 僵尸进程_演示僵尸进程的C程序

    c 僵尸进程 僵尸进程 (Zombie process) A process which has finished its execution but still has an entry in th ...

  6. Linux系统编程——僵尸的模拟以及僵尸进程的预防

    僵尸进程介绍 子进程终止,父进程尚未回收,子进程残留资源(PCB)存放于内核中,变成僵尸进程.由于我们的程序也许是7*24小时不宕机的,程序不结束,僵尸进程残留在PCB中资源就不会被回收,所以我们要清 ...

  7. Linux进程实践(2) --僵尸进程与文件共享

    孤儿进程与僵尸进程 孤儿进程: 如果父进程先退出,子进程还没退出那么子进程的父进程将变为init进程.(注:任何一个进程都必须有父进程) //生成孤儿进程 int main(int argc, cha ...

  8. 总结-linux初识进程(包括cpu调度、进程创建、僵尸进程(重点)、环境变量)

    冯诺依曼体系结构--现代计算机的硬件体系结构 输入设备.输出设备(数据输出).存储器(数据缓冲).运算器(数据运算).控制器. 所有设备都是围绕存储器工作---CPU是从存储器中获取数据处理---控制 ...

  9. linux僵尸程序,什么是僵尸进程(zombie)?

    僵尸进程是指一个已经终止.但是其父进程尚未对其进行善后处理获取终止进程的有关信息的进程,这个进程被称为"僵尸进程"(zombie). 怎样产生僵尸进程 一个进程在调用exit命令结 ...

  10. 僵尸进程zombie与孤儿进程orphan

    代码已上传至https://github.com/gatieme/AderXCoding/tree/master/system/unix/zombie 问题提出 以前在学习<unix环境高级编程 ...

最新文章

  1. 常用Linux命令(续)
  2. Python3 实现用户登陆,输入三次密码
  3. 福禄克2500V数字绝缘电阻测试仪开箱与上手实测
  4. boost::qvm::deduce_vec相关的测试程序
  5. “chaos“的算法--之双向链表
  6. 递归函数中局部变量和全局变量
  7. Txt格式配置表无法解析的问题——BOM
  8. Windows移动开发(一)——登堂入室
  9. 磁盘文件系统Fat、Fat32、NTFS、exFAT的优缺点
  10. Linux 查看日志命令
  11. 基于asp.net338医院体检信息管理系统
  12. 随便说说字符集和编码
  13. CUBA使用Spring查询接口
  14. 在centos7.7安装搜狗输入法踩坑日记
  15. 杂牌机搞机之旅(一)——获得root权限(刷入magisk)
  16. APP - 查询名下微信实名账户(可注销微信封号账户支付功能)
  17. 测试攻击机伪装成目标机 IP 给目标机发送攻击报文是否成功
  18. 六大维度让你彻底明白机器视觉与计算机视觉的区别!
  19. PyQt5的编写的天气查询小软件
  20. 新(小)手(白)如何成为初级WebGIS开发工程师?(转)

热门文章

  1. 计算机硬件设备税率,软件产品增值税即征即退税额的计算
  2. iconfont图标引入方式
  3. 一套5A数据中心机房建设方案(143页),可作投标技术方案模板
  4. 关系数据库——关系代数
  5. 关于导弹飞行控制系统的滚转稳定
  6. 数据仓库-事实表和维度表的设计
  7. 程序员的自我修养之数学基础10:超定方程的求解
  8. 泛函分析笔记08:有界线性算子和泛函介绍与共鸣定理
  9. 西门子em235模块的功能_玩转西门子S7-200模拟量
  10. 红外光通信装置数字部分思路点睛 2013年国赛f题