Лучший способ убить процессы состояния Zombie и D в Linux
Каков наилучший способ убить процессы Zombie и D состояния процесса с помощью одной команды.
5 ответов
Двойное нажатие.
Собственно, перезагрузись. Нет реального способа легко избавиться от зомби, но на самом деле нет причин, потому что зомби не занимает ресурсы на компьютере; это осиротевшая запись в таблице процессов. Инициат должен собрать его, но с процессом что-то пошло не так. http://en.wikipedia.org/wiki/Zombie_process
Возможно, вы спрашиваете, потому что есть более серьезная проблема... вы получаете кучу зомби, бродящих по вашей таблице процессов? Это обычно означает ошибку в программе или проблему с конфигурацией. Вы не должны иметь огромное количество зомби в системе. Один или два, я не волнуюсь. Если у вас их пятьдесят от Apache или другого демона, у вас, вероятно, есть проблема. Но это не имеет прямого отношения к вашему вопросу...
/sbin/reboot
Вы не можете убить зомби - он уже мертв
Если ppid все еще существует, то прекращение, которое может часто убирать порожденных зомби.
Вы не должны убивать процессы в непрерывном режиме сна - обычно это означает, что они связаны с вводом / выводом, но IIRC это также может происходить во время блокировки чтения, например, из сетевого сокета.
Ошибки в базовой файловой системе или дисках могут привести к процессам, связанным с вводом / выводом. В этом случае попытайтесь "размонтировать -f" файловую систему, от которой они зависят - это прервет все открытые ожидающие запросы ввода-вывода.
Большинство ответов посвящено зомби, это нацелено наD state
Процессы, которые застряли в «непрерывном сне», отображаются в списке процессов как находящиеся в состоянии D.
По моему опыту, они часто каким-то образом блокируются при вводе-выводе. Если вы читали файлы с подключенного сетевого диска, а удаленный хост перезапустился или каким-либо образом произошел сбой сетевого подключения, процесс копирования может зависнуть на неопределенный срок.
Единственные исправления — просто убить процесс илиumount -f /mnt/source
отмонтировать диск, и тогда процесс увидит, что он пропал, и завершится с ошибкой. Очевидно, что действие ввода-вывода также будет неполным, вероятно, с частичной копией файла.
Связанный,tar
иrsync
Процесс может находиться в этом состоянии при работе через SSH — он буквально блокируется в ожидании, пока сеть его догонит. Дело в том, что состояние D не обязательно плохое, поэтому уничтожение их всех может быть не идеальным решением.
Следующая строка убьет всех зомби.
ps -xal | grep defunct | awk '{ system (" kill -9 " $4 ) }'