kill -9 が機能しない場合はどうすればいいですか?

kill -9 が機能しない場合はどうすればいいですか?

厄介なプロセスがあります (この場合は、iPhone シミュレーターで実行されているはずの、現在は停止している、取り残されたプロセス)。

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) 意思新たに親に育てられた子供たちを刈り取る。

関連情報