Linux、CentOSでpsコマンドのゾンビ、D状態のプロセスを強制終了する最良の方法

LinuxCentOSでpsコマンドのゾンビ、D状態のプロセスを強制終了する最良の方法について調べてみました。

 

海外のサイトに情報があります。

 

実際に、再起動します。ゾンビを簡単に駆除する実際の方法はありませんが、ゾンビがコンピュータ上のリソースを占有しているわけではないので、そうする理由はありません。これはプロセス テーブル内の孤立したエントリです。Init はそれを収集するはずですが、プロセスで問題が発生しました。

http://en.wikipedia.org/wiki/Zombie_process

 

おそらく、もっと深刻な問題があるために質問しているのでしょう...大量のゾンビがプロセステーブルを徘徊していませんか? これは通常、プログラムのバグまたは構成の問題を意味します。

 

システム上に大量のゾンビが存在するべきではありません。1つや2つなら心配ありません。Apache またはその他のデーモンからのそれらが 50 個ある場合は、おそらく問題が発生しています。しかし、それはあなたの質問とは直接関係ありません...

 

 

ゾンビプロセスは強制killできないようです。

 

/sbin/reboot
ゾンビを殺すことはできません - すでに死んでいます

 

ppid がまだ存在する場合は、それを終了すると、スポーンされたゾンビをクリーンアップできることがよくあります。

 

無中断スリープ中のプロセスを強制終了すべきではありません。通常、これはプロセスが I/O バウンドであることを意味しますが、IIRC では、ネットワーク ソケットなどからの読み取りをブロックしている間にも発生する可能性があります。

 

どうしようもない場合は、以下を試してみるのも一つかもしれません。

 

ps -xal | grep defunct | awk '{ system (" kill -9 " $4 ) }'

 

process - Best way to kill Zombie and D state processes in linux - Server Fault

 

Anker PowerCore 10000 (10000mAh 大容量 モバイルバッテリー)【PSE技術基準適合/PowerIQ搭載】 iPhone&Android対応 (ブラック)