私のシェルのサブプロセスではなく、ゾンビプロセスをどのように取得できますか?

私のシェルのサブプロセスではなく、ゾンビプロセスをどのように取得できますか?

ゾンビプロセスの多いサーバーがあります。ほぼ布。可能であれば、これらのプロセスを収集したいと思います。これは、親プロセス(1000個のゾンビをすべて引き起こす1つの親プロセス)がスタンバイ機能を呼び出さないようです。 Bashにはスタンバイ機能が組み込まれていますが、それを使用してゾンビの1つを収穫しようとすると、次のエラーが発生します。

# wait 17517
bash: wait: pid 17517 is not a child of this shell

私はルートですが、違いはないようです。いくつかの質問があります。

  1. 私のシェルの子プロセスではない場合、ゾンビプロセスを取得できますか?
  2. そうでなければ、私ができることはありませんか?両親を殺すべきかどうかわかりません。
  3. 心配すべきでしょうか?親にリソースリークがあり、ガベージコレクションなどがないようです。

答え1

  1. 私のシェルの子プロセスではない場合、ゾンビプロセスを取得できますか?

いいえ、できません。

  1. そうでなければ、私ができることはありませんか?両親を殺すべきかどうかわかりません。

親プロセスを停止し、無視されたexecシェルから再起動してみることができますSIGCHLD。無関心な親はSIGCHLDゾンビを一人で置かない。

  1. 心配すべきでしょうか?親にリソースリークがあり、ガベージコレクションなどがないようです。

ゾンビの人口が増加すると、最終的に新しいプロセスをフォークできないポイントに到達します。

関連情報