URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 65096
[ Назад ]

Исходное сообщение
"zombie процесы"

Отправлено vova07 , 24-Мрт-06 16:55 
У меня комадна top показивает что постоянно с частотой 3-4 сек.  появляются zombie-процесы (на 1-2 сек.) ...
как взнать что ето за процесы ??????

Содержание

Сообщения в этом обсуждении
"zombie процесы"
Отправлено onorua , 25-Мрт-06 21:41 
>У меня комадна top показивает что постоянно с частотой 3-4 сек.  
>появляются zombie-процесы (на 1-2 сек.) ...
>как взнать что ето за процесы ??????


У этого же top есть возле процесса статус, если мне память не изменяет - это Z. сделай man top, и узнаешь;)


"zombie процесы"
Отправлено Danila , 27-Мрт-06 15:28 
>У меня комадна top показивает что постоянно с частотой 3-4 сек.  
>появляются zombie-процесы (на 1-2 сек.) ...
>как взнать что ето за процесы ??????

Отвечу в меру своих познаний...

Ну, на первый взгляд можно сказать, что ничего страшного нет.
Процесс становится Зомби только для того, чтобы его родитель мог получить код завершения потомка (если родителю вообще это нужно). Когда дочерний процесс завершается система держит его в состоянии Z и посылает сигнал SIGCHLD родителю. У родителя должен быть обработчик этого сигнала, в котором он в цикле вызывает функцию waitpid пока не обработает всех своих зомбей (сигналы посланные системой не буферизуются, поэтому приходится делать это в цикле). После этого система отпускает зомби-процессы в их процессный рай :)

Если родитель сам уже завершился, но зомби остались, то система, скрипнув зубами, разбирается с ними сама - наплевав на код их завершения (который ей вовсе безразличен) просто завершает их. Этит занимается процесс init с PID=1.


Так что в Вашем случае - вполне допустимо появление зомбей на несколько секунд. это означает, что процесс-родитель чем-то занят и просто не успел еще обработать сигнал SIGCHLD и завершившиеся потомки ждут в состоянии Z.

Возможно это происходит потому что система не слишком быстрая или перегружена? Или главный процесс (родитель) написан кривовато, из-за чего не успевает быстро реагировать на завершение своих детей? Вопрос к разработчикам.

Теоретически это может быть потенциальной уязвимостью системы, если например некий процесс-сервер в результате DoS атаки породит множество дочерних процессов, завершение которых не сможет оперативно отрабатывать. Это приведет к истощению системных ресурсов и завалит всю систему.

Команда ps axf | grep -B1 -P "\s+Z\s+" покажет дерево процессов (кто кем порожден) и отфильтрует зомбей вместе с их тормознутым родителем.