Ответ 1
После kill -9
нечего делать с процессом - он мертв (или обречен на смерть). Причина, по которой это происходит, заключается в том, что либо (а) он родительский процесс еще не дождался, поэтому ядро содержит запись таблицы процессов, чтобы сохранить ее статус до тех пор, пока родитель не сделает этого, или (б) процесс не застрял на системный вызов в ядро, которое не заканчивается (что обычно означает багги-драйвер и/или аппаратное обеспечение).
Если первый случай, заставить родителя ждать ребенка или прекратить работу родителя, должен работать. У большинства программ нет четкого способа заставить их "ждать ребенка", поэтому это может быть не вариант.
Во втором случае наиболее вероятным решением является перезагрузка. Там могут быть инструменты, которые могли бы очистить такое состояние, но это не так. В зависимости от того, что делает эта обработка ядра, возможно, ее можно будет разблокировать с помощью других средств, но для этого требуется знание этой обработки. Например, если процесс блокируется при блокировке ядра, что какой-то другой процесс каким-то образом удерживается на неопределенный срок, завершение того, что другой процесс может облегчить проблему.
Обратите внимание, что команда ps
также может различать эти два состояния. Они отображаются в состоянии "Z". См. Страницу man ps для получения дополнительной информации: http://linux.die.net/man/1/ps. Они могут также отображаться с текстом "несуществующим".