Linux:在 Linux 环境中终止僵进程

Summary: 什么是僵尸进程,如何找到它,以及如何杀死或终止它。

Αυτό το άρθρο ισχύει για Αυτό το άρθρο δεν ισχύει για Αυτό το άρθρο δεν συνδέεται με κάποιο συγκεκριμένο προϊόν. Δεν προσδιορίζονται όλες οι εκδόσεις προϊόντων σε αυτό το άρθρο.

Instructions

什么是僵尸进程:
这是一个已结束的进程,但并非所有进程会立即从内存中删除,因为它的进程描述符仍保留在内存中。

进程的正常行为应该是什么:
进程结束时,进程的状态变为 EXIT_ZOMBIE 并且进程的父进程会收到通知,其子进程已随 SIGCHLD 信号。

然后,父进程应该运行 wait() 系统调用读取无效进程的退出状态和其他信息。之后 wait() 调用,僵尸进程从内存中删除。这种情况发生得很快,因此您不会看到系统上积聚僵尸进程。但是,在我们看到几个僵尸进程累积的情况下,这是程序代码效率不高的情况。

如何找到僵尸进程:
运行命令 top
Top 命令的结果

运行命令 ps -ef | grep defunct
失效命令的结果

如何终止累积的僵尸进程:
大多数情况下,僵尸进程具有相同的父进程 ID。

有两种方法可以删除该过程:
  • 发送 SIGCHLD 向父进程发出信号。
此信号告知父进程运行 wait() 系统调用并清理其僵尸子项:
kill -s SIGCHLD <PPID>
示例:
kill -s SIGCHLD 2201
  • 终止僵尸父进程
kill -9 <PPID>
示例:
kill -9 2201

Επηρεαζόμενα προϊόντα

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 LTS
Ιδιότητες άρθρου
Article Number: 000019108
Article Type: How To
Τελευταία τροποποίηση: 03 Φεβ 2026
Version:  5
Βρείτε απαντήσεις στις ερωτήσεις σας από άλλους χρήστες της Dell
Υπηρεσίες υποστήριξης
Ελέγξτε αν η συσκευή σας καλύπτεται από τις Υπηρεσίες υποστήριξης.