UNIXシステム上消滅プロセスを殺す[閉鎖]
-
21-08-2019 - |
質問
私は自分のシステムに現存しないプロセスを持っています:
abc 22093 19508 0 23:29 pts/4 00:00:00 grep ProcA
abc 31756 1 0 Dec08 ? 00:00:00 [ProcA_my_collect] <defunct>
私は、マシンを再起動せずに、上記のプロセスを殺すことができる方法は?私は
を試してみましたkill -9 31756
sudo kill -9 31756
解決
あなたは、プロセスを殺してきたが、その親プロセスは、(基本的にその終了ステータスを読み取るために、そのプロセスのためにwait(3)
を呼び出す)「刈り取り」と呼ばれるタスクを実行するまで、死んだプロセスは、プロセステーブルから消えません。刈り取られていないデッドプロセスは、「ゾンビがに処理します。」と呼ばれている。
あなたは31756を参照の親プロセスIDは常にinit
に属しているプロセスID 1、です。このプロセスは、定期的にゾンビプロセスを享受すべきであるが、それができない場合は再起動するまで、彼らはプロセステーブルでゾンビをままになります。
他のヒント
あなたが最初に殺される必要があるかもしれません子プロセスをチェックしましたか?時々ジャムアップラインがダウンしています...
ps -ef --forest
をお試しください
(どちらかといえば)その下にあるかもしれないものを参照するには、最初の、そして1はすでに
について知っていることを殺しますキルは-9原因は、ほとんどの場合、ドライバやオペレーティングシステムのバグであるプロセスを殺すために失敗した場合。
initプロセスは、プロセスを採用しているが、それは、それを享受することができません。それは言うことです:initが待機を呼び出したとき(2)そのプロセスが返されません。 initの主な目的の一つは、死んで孤児を享受することがあるので、問題は、それが享受される前に、その親が死亡したということではありません。考える:それ以外の場合は、ログアウト後nohup'dプロセスの結果を刈り取る者
?亡きプロセスの子供を殺すことは、彼らが何らかの形であなたが見ている特定のバグに関連している場合を除き手助けすることはほとんどありません。
あなたはおそらく、親を殺すことは、それを解決しない場合のことができるようにするつもりはありません。何らかの理由でシステムは、ゾンビプロセスを収集されていません。
FWIW、私はそれを私が管理するために使用されるSCOのOpenServerツゲのかなりを見てきました。ヘビーマルチユーザーの使用状況やシステムリソースの不足が、何かを傷つけるしていないようでした。ちょうど私をイライラ。 :)
プロセスは、おそらく、例えばでハングSIGPIPEのような信号を無視して、ここで何が起こっているかstrace -p <pid>
に確認します。