Интересное решение убийства зомби-процессов: ps -ef | grep defunct | awk ‘{ print $3 }’ | xargs kill -9. Убить зомбей!
Убить "зомби"
Сообщений 1 страница 4 из 4
Поделиться217 Окт 2010 19:26:39
как-то не интересовался этими зомбями но почему-то думал что это некий проянец позволяющий управлять машиной для корыстных целей вроде аттак на сервера. а оказывается все довольнотаки невинно
Zombie - это статус процесса перед смертью.
обычно зомби остаются подолгу из-за того, что процесс родителя был написан через одно место.если процесс А прождает процесс Б, то при смерти Б, А должен вызвать системный вызов wait().
причина такова:
в линуксе, как и в других юниксах, при изменении статуса процесса ( для понимания этого выражения, ножно знать что есть "процесс", и что это его "статус".)
прежде чем изменить статус, родитель получает сообщение об этом. если это сообщение о смерти сына, то процесс родителя обязан сообщить системе о том, что это нормально, и система может освободить все ресурсы от сына. делается это вызовом wait().если этого не происходит, процесс остается в промежуточном статусе. ZOMBIE это и есть "предсмертный статус".
Поделиться317 Окт 2010 20:18:01
Возьму на заметку, правда еще не разу не видел в глаза подобных процессов
Поделиться417 Окт 2010 22:41:55
Свирепый эффект вызывал у меня мой файерфокс с подключенным флэшем (сейчас не помню ни номер фокса, ни флэша) но suse 11.3 Первый зомбей появлялся при первом вызове фокса, а затем появлялись с частотой, примерно, 1 в секунду. Реально тормозило рабоу фокса. В причине пока не копался. Флэш - отключил, благо скорость от мтс не позволяет им пользоваться. И вот ещё, не большое добавление ко второму посту.Основной всё таки случай это когжа родительский процесс перед своей смертью должен остановить дочерние процессы, а этого не делает. В результате родитель - мёртв, а никому не принадлежащий и никому не нунжный дочерний процесс - нет. Таким образом зомби это состояние процесса после смерти, а не перед.
Отредактировано vbb (17 Окт 2010 22:53:40)