Зомби процессы в Linux
Если в вашей системе завелись зомби процессы, не расстраивайтесь. Не смотря на страшное название зомби процесс не может нанести серьезный вред вашей системе. Для начала давайте разберемся как обычный процесс превращается в зомби.
Когда дочерний процесс получает команду на завершение, он освобождает все используемые ресурсы и продолжает как зомби существовать в системе с ранее присвоенным ему PID
. Далее с помощью сигнала SIGCHLD
система уведомляет родительский процесс о завершении зомби процесса. Если по какой-либо причине родительский процесс игнорирует этот сигнал, то зомби процесс так и продолжает отображаться в системе.
Как вы уже поняли, зомби процессы не используют системные ресурсы, поэтому их можно просто игнорировать. Убить зомби процесс на прямую командой kill
у вас не получиться. В данном случае единственный вариант полностью убрать зомби процесс — убить или перезапустить его родительский процесс.
Что бы убить зомби процесс, для начала нужно получить его PID
:
# ps aux | grep -w Z
root 2037 0.0 0.0 0 0 ? Z 09:44 0:00 [httpd]
root 8470 0.0 0.0 112652 984 pts/10 S+ 10:43 0:00 grep --color=auto -w Z
В моем примере PID
зомби процесса 2037
. Теперь получим PID
родительского процесса:
# ps o ppid 2037
PPID
2033
Когда мы знаем PID
, правильнее всего определить что это за процесс командой top
, а затем перезапустить его.
В крайнем случае можно убить родительский процесс:
# kill -9 2033
Комментариев 0