7

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

97442 ??         0:00.00 (MyProcess)

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

sudo kill -9 97442
sudo kill -HUP 97442

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

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

1 ответ1

13

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

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

Затем запустите kill <pid> для любого результата ppid . (Сначала дайте ему шанс умереть чисто.)

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

Когда родители не пожинают своих детей, дети остаются зомби - до тех пор, пока родительский процесс не будет убит, в этот момент ядро переопределяет детей в init(8) . init(8) будет пожинать вновь перерожденных детей.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .