Что делать, если kill -9 не работает?

Что делать, если kill -9 не работает?

У меня есть надоедливый процесс (в данном случае, зависший процесс, который должен был работать в iPhone Simulator (теперь давно закрыт).

97442 ??         0:00.00 (MyProcess)

Я перепробовал все, что только мог придумать, включая

sudo kill -9 97442
sudo kill -HUP 97442

И все же, как и Ворон... процесс остается.

В данном случае это означает, что для продолжения работы мне придется перезагрузить компьютер.

решение1

Когда процесс остается в таблице процессов, как этот процесс, то вам нужно завершить его.родительпроцесс. Сначала найдите PID родительского процесса:

ps -eo 'pid,ppid,comm' | grep 97442

А затем бегите kill <pid>, каков бы ни ppidбыл результат. (Сначала дайте ему шанс умереть чисто.)

Традиционная архитектура Unix сохраняет информацию о процессеродителидля сбора и очистки, в случае если родительские процессы захотят запуститься, getrusage(2)чтобы узнать использование ресурсов своими дочерними процессами или wait(2)для определения их статуса завершения и т. д.

Если родители не уничтожают своих потомков, потомки остаются зомби — ДО ТЕХ ПОР, ПОКА родительский процесс не будет завершен, после чего ядро ​​вернет потомкам родительский процесс init(8).init(8) воляпожинать плоды вновь обретенных детей.

Связанный контент