Linux: Завершение зомби-процесса в средах Linux
Summary: Что такое зомби-процесс, как его найти и как его убить или уничтожить.
Acest articol se aplică pentru
Acest articol nu se aplică pentru
Acest articol nu este legat de un produs specific.
Acest articol nu acoperă toate versiunile de produs existente.
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
Produse afectate
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 LTSProprietăți articol
Article Number: 000019108
Article Type: How To
Ultima modificare: 03 feb. 2026
Version: 5
Găsiți răspunsuri la întrebările dvs. de la alți utilizatori Dell
Servicii de asistență
Verificați dacă dispozitivul dvs. este acoperit de serviciile de asistență.