终止僵尸进程
背景
一系列危险操作后我想启动一个进程,启动时提示我进程已经在运行,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())。
使用 top 或 htop 查看是否有大量 Z 状态进程,排查程序问题。

浙公网安备 33010602011771号