Если процесс был завершен, но его PID и запись процесса остались в таблице процессов Linux. Зомби процессы Linux возникают если родительский процесс не может вызвать wait (), его дочерний процесс останется в таблице процессов, превратившись в зомби.
Поиск зомби процессов в Linux
Для поиска зависших процессов выполняем следующую команду
1 | ps axo stat,ppid,pid,comm | grep -w defunct |
Команда найдет все зависшие в системе процессы
Пример:
1 | Z 42365 679033 httpd <defunct> |
Завершить зомби процессы в linux
Есть несколько вариантов попробовать завершить зомби процесс.
Отправить команду SIGCHLD. В данном случае это процесс с PPID 42365
1 | kill -s SIGCHLD 42365 |
Если зомби процесс все еще не завершен, то можно попробовать завершить родительский процесс
1 | kill -9 679033 |
Как только его родительский процесс будет убит, зомби процесс будет завершен init, который является родительским для всех процессов в Linux.