LINUX.ORG.RU

зомби, жрущий ресурсы


0

2

Многие сталкивались с процессами-зомби, как и я. Самое неприятное в них - неубиваемость, хотя, как говорят знатоки, «это всего лишь запись в таблице дескрипторов процессов». Так думал и я, пока не столкнулся с неожиданно бешеными глюками transmission, который после запуска при любом действии намертво виснет, а при закрытии или kill -9 стабильно становится зомби. Самое загадочное, это то, что он пожирает процессорное время: http://rghost.ru/4140810/image.png Происходит это все на нетбуке «eeepc 1001p» и система заметно притормаживает с этим зомби. Спасает только перезагрузка.

У меня вопрос к гуру ядра линукса: как возможна такая ситуация с процессом, и реализуют ли когда-нибудь механизмы борьбы с зомби? Ведь получается, что, теоретически, можно занять все дескрипторы зомбями и система не сможет стартовать новый процесс!

P.S. Уже перелез с transmission на vuze. Линукс мне нравится, я в нем давно, менять ось не собираюсь, так что это не попытка троллинга а нормальный вопрос.


Я вот вообще не понимаю, что мешает просто взять и удалить этот процесс из таблицы дескрипторов. Объясните и мне, кто-нибудь.

post-factum ★★★★★
()
Ответ на: комментарий от post-factum

Я вот вообще не понимаю, что мешает просто взять и установить qbittorrent?

babusha
()

Кстати, зомбаком процесс становится после убиения родителя, пока init, к примеру, не возьмёт дитя под опеку. Ещё наводящий вопрос: почему зомби вообще возникают?

post-factum ★★★★★
()
Ответ на: комментарий от post-factum

>Кстати, зомбаком процесс становится после убиения родителя, пока init, к примеру, не возьмёт дитя под опеку. Ещё наводящий вопрос: почему зомби вообще возникают?

Зомби процесс становится, когда родитель не читает код возврата завершившегося процесса.

AptGet ★★★
()
Ответ на: комментарий от post-factum

> Но init-то должен дитя у нерадивого родителя забрать?

Родитель жив, но не вызывает wait(). Если убить родителя, родителем станет init и корректно обработает SIGCHLD.

AptGet ★★★
()
Ответ на: комментарий от AptGet

Хотя насчет обработки сигналов init'ом я могу соврать. В любом случае, init вызывает wait() для всех детей.

AptGet ★★★
()

vuze мне тоже не понравился - это жабоподелие жутко тормозит само по себе, поставил deluge

OzOx
() автор топика
Ответ на: комментарий от x3al

в этом случае зомби жрет ресурсы?

OzOx
() автор топика

Гы. У меня были случаи, когда зомби держал звуковуху так, что машина лишалась звука до перезагрузки. Правда, давно это было, года два назад. Потом прошло :)

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.