Виртуальные дробовики?
unix
job-control
zombie
jldugger
источник
источник
Процесс зомби (на самом деле теперь они называются
<defunct>
) на самом деле не процесс. Это только запись в таблице процессов, поэтому родительский процесс может выполнятьwait()
syscall .Вы не должны беспокоиться о них. Они не занимают никаких ресурсов, они исчезнут либо при вызове их родителя,
wait()
когда сам родитель умирает.источник
Это процесс, который был полностью освобожден, но все еще существует в таблице процессов. Сравните это с процессом-сиротой, родитель которого умер, но все еще выполняется.
Вот несколько советов по избавлению от них.
источник
Однако уже принят принятый ответ: вы МОЖЕТЕ убить процесс зомби. Присоедините с помощью отладчика к родительскому процессу и вызовите функцию waitpid. Например: - давайте предположим, что родитель имеет PID = 100, процесс зомби имеет PID = 200
источник
У процесса зомби нет выделенных ему ресурсов, кроме записи в дереве процессов. Это происходит, когда процесс завершается, однако родительский процесс еще не получил его (т. Е. Редактировал
wait
его).Вы можете попытаться заставить родителя сделать это, если хотите, отправив ему
kill -20
родительский объект SIGCHLD ( ), но нет гарантии, что родитель выполнит его.Вы будете часто видеть их в течение коротких периодов времени (например, при просмотре дерева процессов с помощью top) - это нормально; В промежутке времени между завершением дочернего процесса и опросом родительского процесса дочерний процесс будет отображаться как зомби.
Однако, если вы видите процессы зомби, которые постоянно существуют - что не является нормальным - это все равно не нужно беспокоить - опять же, поскольку нет ресурсов, выделенных для мертвого процесса - это обычно означает, что приложение плохо написано дрянными разработчиками.
Единственный случай, когда вас должны волновать процессы зомби, - это когда вы видите их очень много, например, если то же самое дрянное приложение, упомянутое выше, загружено.
У меня есть много дурацких разработчиков, где я работаю, и поэтому у меня есть привилегия иметь дело с такими проблемами и изучать все виды бесполезных вещей при этом. Фактически - моя команда часто прибегает к использованию дрянных сценариев оболочки, написанных дрянными разработчиками в интервью, - если кандидат может понять, что сценарий действительно дурацкий, и сказать нам, почему он дерьмовый, у него хорошая ножка в дверь.
источник
Что касается виртуального дробовика ...
И помните: всегда стреляйте им в голову.
источник
Процесс зомби - это процесс, который завершился, но все еще указан в таблице процессов.
kill -9 [родительское имя_процесса] откажется от него с предубеждением.
источник