Linux: Завершение зомби-процесса в средах Linux
Summary: Что такое зомби-процесс, как его найти и как его убить или уничтожить.
Αυτό το άρθρο ισχύει για
Αυτό το άρθρο δεν ισχύει για
Αυτό το άρθρο δεν συνδέεται με κάποιο συγκεκριμένο προϊόν.
Δεν προσδιορίζονται όλες οι εκδόσεις προϊόντων σε αυτό το άρθρο.
Instructions
Что такое зомби-процесс:
Это процесс, который завершился, но не весь он немедленно удаляется из памяти, так как его дескриптор процесса остается в памяти.
Каким должно быть нормальное поведение процесса:
После завершения процесса состояние процесса принимает следующее
Затем родительский процесс должен запустить метод
Как найти зомби-процессы:
Выполнение команды
Выполнение команды
Как прекратить накапливающиеся зомби-процессы:
В большинстве случаев зомби-процессы имеют один и тот же идентификатор родительского процесса.
Существует два способа удаления процесса:
Это процесс, который завершился, но не весь он немедленно удаляется из памяти, так как его дескриптор процесса остается в памяти.
Каким должно быть нормальное поведение процесса:
После завершения процесса состояние процесса принимает следующее
EXIT_ZOMBIE и родительский процесс уведомляется о том, что его дочерний процесс умер с помощью метода SIGCHLD Сигнал.
Затем родительский процесс должен запустить метод
wait() Для системного вызова для считывания состояния выхода мертвого процесса и другой информации. После wait() вызывается, зомби-процесс удаляется из памяти. Это происходит быстро, поэтому вы не увидите, как зомби-процессы накапливаются в вашей системе. Но в тех случаях, когда мы видим скопление нескольких зомби-процессов, это ситуация, когда программный код не эффективен.
Как найти зомби-процессы:
Выполнение команды
top
Выполнение команды
ps -ef | grep defunct
Как прекратить накапливающиеся зомби-процессы:
В большинстве случаев зомби-процессы имеют один и тот же идентификатор родительского процесса.
Существует два способа удаления процесса:
- Отправьте
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
Υπηρεσίες υποστήριξης
Ελέγξτε αν η συσκευή σας καλύπτεται από τις Υπηρεσίες υποστήριξης.