linux服务器上僵尸进程查看并杀死方法

在学习Linux命令时,发现'zombie'进程表示僵尸进程。僵尸进程在调用exit后并未真正销毁,仅保留数据结构等待父进程收尸。若父进程未处理SIGCHLD信号或不调用wait、waitpid,僵尸进程将持续存在。通过ps命令的法1(ps -e -o stat,ppid,pid,cmd|egrep '1')和法2(ps -ef | grep "defunct")可以查找僵尸进程,然后使用kill -9终止其父进程来清理。" 89482388,7325965,MySQL数据库操作指南:登陆、创建、修改、删除,"['MYSQL数据库操作', '数据库编码', '数据库管理']
摘要由CSDN通过智能技术生成

今天在熟悉Linux命令的时候,使用top查看服务器负载的时候,发现了zombie(简单理解成僵尸吧)这个参数
在这里插入图片描述
这个参数就代表僵尸进程的含义,什么是僵尸进程呢?(这里盗用一下官方的解释)

一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用exit, 它的作用是使进程退出,但也仅仅限于将一个正常的进程变成一个僵尸进程,并不能将其完全销毁)。

在Linux进程的状态中,僵尸进程是非常特殊的一种,它已经放弃了几乎所有内存空间,没有任何可执行代码,也不能被调度,仅仅在进程列表中保留一个位 置,记载该进程的退出状态等信息供其他进程收集。除此之外,僵尸进程不再占有任何内存空间。它需要它的父进程来为它收尸,如果他的父进程没安装 SIGCHLD 信号处理函数调用wait或waitpid()等待子进程结束,又没有显式忽略该信号,那么它就一直保持僵尸状态,如果这时父进程结束了, 那么init进程自动会接手这个子进程,为它收尸,它还是能被清除的。但是如果如果父进程是一个循环,不会结束,那么子进程就会一直保持僵尸状态,这就是 为什么系统中有时会有很多的僵尸进程。

如何找到僵尸进程的相关信息呢?
法1. ps -e -o stat,ppid,pid,cmd|egrep ‘

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值