| 会员登录 立即注册

打印 上一主题 下一主题

如何找到并杀掉 Linux 系统中的僵尸进程

[复制链接]
跳转到指定楼层
楼主
3AAA 发表于 2021-10-26 12:17:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
楼主
3AAA
2021-10-26 12:17:04 6807 10 看楼主


这是一个关于如何寻找 Linux 系统僵尸进程并杀死它们的小知识。你也可以从中了解到关于进程和僵尸进程的一些知识。

在了解僵尸进程之前,让我们来复习一下什么是 Linux 进程。

简而言之,进程是一个程序的运行实例。它可能运行在前端(比如有交互的进程),也可能运行在后端(比如无交互或自动运行的进程)。它可能是一个父进程(运行期间创建了其他进程),也可能是一个子进程(由其他进程所创建)。

在 Linux 系统中,除 PID 为 0 的第一个 init进程(或systemd)外,其余进程都有父进程。进程也可以拥有自己的子进程。

不相信?可以试试在终端中使用 pstree命令查看进程的树型结构,你能看到系统各个进程的“家族树”。

Linux系统里的僵尸进程是什么?


子进程死亡后,它的父进程会接收到通知去执行一些清理操作,如释放内存之类。然而,若父进程并未察觉到子进程死亡,子进程就会进入到“僵尸zombie”状态。从父进程角度看,子进程仍然存在,即使子进程实际上已经死亡。这就是“僵尸进程zombie process”(也被称为“已消失进程defunct process”)是如何产生并存在于系统中的。

这里有一个来自 Turnoff.us的关于僵尸进程的非常有趣的看法:



你真的需要关心僵尸进程吗?


重点要说的是,僵尸进程并没有像它的名称那样看起来可怕。

但如果系统的内存已经所剩不多或者有太多的僵尸进程在吃掉内存,问题会变得糟糕。同样,大部分 Linux 系统进程最大 PID 设置为 32768,如果过多僵尸进程导致其他重要任务没有 PID 可用,你的系统会发生崩溃。

这是真实可能发生的,它有一定的概率,特别当存在一个编码糟糕的程序开始大量产生僵尸进程的时候。

在这种情况下,找到并杀死僵尸进程是一个明智的做法。

如何找到僵尸进程


Linux 系统中的进程可能处于如下状态中的一种:
    D= 不可中断的休眠I= 空闲R= 运行中S= 休眠T= 被调度信号终止t= 被调试器终止Z= 僵尸状态

那如何查看进程和它的当前状态呢?一个简单的方法是在终端中使用 top 命令。



正如你在上面截图中看到的,截图中共有 250 个任务(进程),其中 1 个处在 “运行中running” 状态,248 个进程处于 “休眠sleep” 状态,还有一个处于 “僵尸zombie” 状态。

现在问题进入下一步,如何杀死 “僵尸” 进程?

如何找到并杀死一个僵尸进程?僵尸进程能被杀死吗?


僵尸进程已经死了,要如何才能杀死一个已经死亡的进程呢?

在僵尸电影中,你可以射击僵尸的头部或烧掉它们,但在这里是行不通的。你可以一把火烧了系统来杀死僵尸进程,但这并不是一个可行的方案。

一些人建议发送 SIGCHLD给父进程,但这个信号很可能会被忽略。还有一个方法是杀死父进程来杀死僵尸进程,这听起来很野蛮,但它却是唯一能确保杀死僵尸进程的方法。

首先,通过在终端中 使用 ps 命令我们列举僵尸进程,得到它们的进程 ID:
ps ux | awk '{if($8=="Z+") print}'
ps ux命令输出的第 8 列显示了进程状态。上述命令只会打印所有处在 Z+ 状态(表示僵尸状态)的进程。

确认了进程 ID 后,我们可以得到它的父进程 ID:
ps -o ppid= -p
你也可以将上述两个命令结合在一起,直接得到僵尸进程的 PID 及其父进程的 PID:
ps -A -ostat,pid,ppid | grep -e '[zZ]'
现在你得到了父进程 ID,使用命令行和得到的 ID 号 终于可以杀死进程了:
kill -9


再次运行 ps命令或top命令,你可以验证僵尸进程是否已经被杀死。

恭喜!现在你知道怎么清理僵尸进程了。

via: https://itsfoss.com/kill-zombie-process-linux/

作者:Marco Carmona选题:lujun9972译者:zengyi1001校对:wxy

本文由 LCTT原创编译,Linux中国荣誉推出
回复

使用道具 举报

沙发
我是会员 发表于 2021-10-26 12:17:57 | 只看该作者
沙发
我是会员
2021-10-26 12:17:57 看楼主
之前遇到kill 9都杀不掉的
回复 支持 反对

使用道具 举报

板凳
胡辣汤 发表于 2021-10-26 12:19:39 | 只看该作者
板凳
胡辣汤
2021-10-26 12:19:39 看楼主
转发了
回复 支持 反对

使用道具 举报

地板
修电路 发表于 2021-10-26 12:20:28 | 只看该作者
地板
修电路
2021-10-26 12:20:28 看楼主
转发了
回复 支持 反对

使用道具 举报

5#
s水上公园 发表于 2021-10-26 12:20:54 | 只看该作者
5#
s水上公园
2021-10-26 12:20:54 看楼主
转发了
回复 支持 反对

使用道具 举报

6#
史9311 发表于 2021-10-26 12:22:22 | 只看该作者
6#
史9311
2021-10-26 12:22:22 看楼主
转发了
回复 支持 反对

使用道具 举报

7#
唯吴独尊 发表于 2021-10-26 12:24:18 | 只看该作者
7#
唯吴独尊
2021-10-26 12:24:18 看楼主
转发了
回复 支持 反对

使用道具 举报

8#
吴明生 发表于 2021-10-26 12:24:42 | 只看该作者
8#
吴明生
2021-10-26 12:24:42 看楼主
转发了
回复 支持 反对

使用道具 举报

9#
美景321 发表于 2021-10-26 12:26:25 | 只看该作者
9#
美景321
2021-10-26 12:26:25 看楼主
转发了
回复 支持 反对

使用道具 举报

10#
阿肆 发表于 2021-10-26 12:27:20 | 只看该作者
10#
阿肆
2021-10-26 12:27:20 看楼主
转发了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 返回列表

3AAA 当前离线
白银会员

查看:6807 | 回复:10

关于我们  |   侵权投诉受理  |   联系我们  |   Archiver  |  
免责声明:邳州信息网所有言论只代表发表者个人观点,与本站无关
Copyright © 2009-2025 pzxxw.com 版权所有:邳州金银杏文化传媒有限公司  

苏公网安备 32038202000401号

快速回复 返回顶部 返回列表