终止僵尸进程

背景

一系列危险操作后我想启动一个进程,启动时提示我进程已经在运行,PID 为 2443175。
使用 kill -9 2443175 杀死进程再次启动仍提示进程已经在运行。
使用 ps -p 2443175 查看发现 CMD 列提示 <defunct>
我该如何终止该进程?

学习

把问题扔给了 DeepSeek,给出了原因以及解决方案。

ps -p 显示进程状态为 <defunct> 时,表示这是一个僵尸进程(Zombie Process)。僵尸进程是已经终止但尚未被父进程回收的进程,通常无法直接用 kill 命令关闭。

解决方案是终止或重启父进程。

实在不行还可以重启系统

实操

找到父进程

ps -o ppid= -p 2443175

结果如下图

终止父进程

kill -9 2442530

再次使用 `ps -p 24431751 查看进程

最后进程成功启动

补充

DeepSeek 还给出了一些补充说明,觉得有用遂记录在这。

预防僵尸进程:确保程序正确实现子进程的回收(如父进程调用 wait())。

使用 tophtop 查看是否有大量 Z 状态进程,排查程序问题。

posted @ 2025-04-13 18:35  yu__xuan  阅读(35)  评论(2)    收藏  举报