Linux:在 Linux 环境中终止僵进程
Summary: 什么是僵尸进程,如何找到它,以及如何杀死或终止它。
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Instructions
什么是僵尸进程:
这是一个已结束的进程,但并非所有进程会立即从内存中删除,因为它的进程描述符仍保留在内存中。
进程的正常行为应该是什么:
进程结束时,进程的状态变为
然后,父进程应该运行
如何找到僵尸进程:
运行命令
运行命令
如何终止累积的僵尸进程:
大多数情况下,僵尸进程具有相同的父进程 ID。
有两种方法可以删除该过程:
这是一个已结束的进程,但并非所有进程会立即从内存中删除,因为它的进程描述符仍保留在内存中。
进程的正常行为应该是什么:
进程结束时,进程的状态变为
EXIT_ZOMBIE 并且进程的父进程会收到通知,其子进程已随 SIGCHLD 信号。
然后,父进程应该运行
wait() 系统调用读取无效进程的退出状态和其他信息。之后 wait() 调用,僵尸进程从内存中删除。这种情况发生得很快,因此您不会看到系统上积聚僵尸进程。但是,在我们看到几个僵尸进程累积的情况下,这是程序代码效率不高的情况。
如何找到僵尸进程:
运行命令
top
运行命令
ps -ef | grep defunct
如何终止累积的僵尸进程:
大多数情况下,僵尸进程具有相同的父进程 ID。
有两种方法可以删除该过程:
- 发送
SIGCHLD向父进程发出信号。
此信号告知父进程运行
wait() 系统调用并清理其僵尸子项:
kill -s SIGCHLD <PPID>
示例:
kill -s SIGCHLD 2201
- 终止僵尸父进程
kill -9 <PPID>
示例:
kill -9 2201
Affected Products
SUSE Linux Enterprise Server 12, Red Hat Enterprise Linux Version 7, Red Hat Enterprise Linux Version 9, Red Hat Enterprise Linux Version 8, SUSE Linux Enterprise Server 15, Ubuntu Server LTSArticle Properties
Article Number: 000019108
Article Type: How To
Last Modified: 03 فبراير 2026
Version: 5
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.