応答しないプロセスを名前で強制終了し、応答するプロセスは保持する

応答しないプロセスを名前で強制終了し、応答するプロセスは保持する

何らかの理由で、かなりの数の Google Chrome Helper プロセスが応答を停止し、CPU リソースを占有するkillall Google\ Chrome\ Helperことになります。通常は を実行するだけですが、これにより応答するプロセスも含めてすべてが強制終了されるため、Chrome を再起動する必要があります。

killall応答しないプロセスにのみ影響するフラグはありますか?

答え1

これを行う 1 つの方法は、topCPU を最も多く使用しているプロセスの pid を見つけることです。私は 1 つのターミナルで bash CPU hog を開始しました。

bash -c "while true; do :; done"

次に、別のターミナルで次のようにして強制終了します。

kill $( top -l2 | grep bash | sort -nrk3 | awk '{print $1;exit}' )

注意:これはこれは BSD バージョンでありtop、GNU バージョンではありません。

  • -l2top に 2 回繰り返し実行するように指示します。最初の繰り返しは、すべてのプロセスに対して 0% の CPU を報告するだけなので無視する必要があります。
  • bash 行のみをフィルターgrepします。grep 式がtop出力の他の部分と一致する場合は、さらに作業が必要になる可能性があることに注意してください。
  • sort出力を3列目(CPU %)の逆順に並べ替えます。
  • head最初の行を取得します(最高のCPU)
  • cut最初の列(PID)を取得します
  • 上記は$()コマンド置換で実行され、数値PIDは直接渡されるだけです。kill

GNU/Linux マシンでは同等のものは次のようになります:

kill $(top -bn1 | grep bash | sort -nrk9 | awk '{print $1;exit}')

関連情報