Article

Ubuntu提示存在僵尸进程应该如何处理

运维笔记发布于·更新于
#Ubuntu#Linux#进程#服务器

今天登上控制台,发现了如下输出

text
There are 20 zombie processes

控制台输出
对Linux说实话不怎么熟悉,看到zombie(僵尸)第一反应是木马(我新服务器才装一天哪来的木马,而且Ubuntu怎么可能自己扫描出木马,甚至20多个?)

一查发现,果然不是我所想象的那样
它的定义(转载自简书)是这样的:

APEU2对于 僵尸进程(zombie process)的定义:
In UNIX System terminology, a process that has terminated, but whose parent has not yet waited for it, is called a zombie.
父线程在子线程结束时,没有进入wait方法获取子线程的终止状态,子线程终止后就是僵尸进程。

僵尸进程(zombie process)的危害

子线程结束时会发送SIGCHLD信号给父线程,父线程进入wait方法释放相关资源,关闭打开的文件等。当父线程不知道子线程已结束,不进入wait方法释放相关资源,大量的僵尸进程会占用系统大量资源;另一方面子进程的进程号还一直被占用,当大量的僵尸进程出现时会导致系统无法创建新的进程。

果然不是什么好东西

那么我们可以输入如下命令来查看所有僵尸进程:

bash
ps aux | grep Z

控制台输出
这下看出来了,这些进程都是些Chrome的进程,或许跟我昨天装的Koishi有关

我们用如下命令解决

bash
ps -eo pid,ppid,stat,cmd | grep 'Z'  # 查找僵尸进程及其父进程
bash
kill -HUP <PPID>  # 向父进程发送 SIGHUP 信号,其中<PPID>为父进程ID

或者你也可以选择终止父进程

::: banner {error}
请确保你的父进程未运行任何核心服务再进行kill
:::

bash
kill -9 <PPID>  
Copyright & License
© 2025 Teror Fox
Ubuntu提示存在僵尸进程应该如何处理
CC知识共享许可
BY署名:必须保留原作者署名
NC非商业:禁止用于商业目的
SA相同方式共享:以同协议发布
许可协议:署名-非商业性使用-相同方式共享
Teror Fox
Teror Fox离线