On 09.03.2012 13:34, -=Devil_InSide=- wrote:
>>> а почему попытки убить именно 1300й ?
>>> бить всех, бог узнает своих (с)
>>> на самом деле отвалились процессы с <defunct>, а 1300й запуститься не
>>> может. kill -9 749 1300 32103 32200
>>> можно несколько раз.
>>
>> Нельзя убить того, кто уже мёртв ;)
>> <defunct> -- это процессы-зомби, убитые, но ожидающие, когда их
>> reap'нут. А 1300, судя по всему, застрял в TASK_UNINTERRUPTABLE -- в
>> этом состоянии сигналы процессу не доставляются, поэтому kill и не
>> работает.
>>
> 
> ну ето, как бы, может, и да; но тем не менее, когда прекрасная сборка 
> doublecmd, не рассчитанная на дебиановские glibc умирала, картина была такая 
> ж. пара дефункшенов и один, который непоймичо.
> и помогало лишь убитие всех.

Помогало вам убитие того одного, скорее всего. Никто не запрещает
посылать сигналы процессам-зомби, однако это абсолютно бесполезно: все
связанные с процессом ресурсы уже освобождены, в том числе адресное
пространство и ядерный тред, так что исполнять обработчик сигнала просто
некому. Вообще, с самими зомби всё в полном порядке -- это совершенно
штатная ситуация, проблема в родительском процессе, не желающем вызвать
wait(2) (из-за того, что завис или просто криво написан). В вашем случае
вы прибили родительский процесс, "осиротевшие" зомби были переданы
процессу init, а он уже вызвал wait(waitpid).

--
Илья


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/jjcn0u$l4t$1...@dough.gmane.org

Ответить