CPUを多く使用する不思議なbashインスタンス、どのようにデバッグできますか?

CPUを多く使用する不思議なbashインスタンス、どのようにデバッグできますか?

bash私のCPUの大部分を占める複数の実行プロセスがあるようです。これは次の出力ですtop -c

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND         
20116 terdon    20   0 35288  14m  292 R 400.0  0.2   0:00.43 /bin/bash       
20106 terdon    20   0 35992  15m  280 R  95.9  0.2   0:00.65 /bin/bash       
20105 terdon    20   0     0    0    0 R  57.6  0.0   0:00.83 [bash]          

これは次の出力ですps aux | grep bash | head -3

terdon  7487 45.3  0.0      0     0 ?        R    19:31   0:01 [bash]
terdon  7488 66.0  0.0      0     0 ?        R    19:31   0:01 [bash]
terdon  7530 23.0  0.2  37984 17408 ?        R    19:31   0:00 /bin/bash

コマンドが実行されるたびにPIDが変更されるため、何かが常に生まれ変わっているようですbash

詳細:

  • いくつかの項目があります[bash]。私が正しく理解した場合、[process name]これはコマンドライン引数なしでプロセスが開始されることを意味します。
  • PIDが変更され、何かが生成されます。
  • サインアウトしてから再度ログインしましたが(Cinnamonで働いています)、問題は解決しません。

今再起動すると、この問題は消えると思います。主な質問は、これらのプロセスを追跡するために何を使用できますか?

top -c役に立ちません。pgrep bash他のPIDのリストを提供し、lsof /bin/bash実行中のbashインスタンスをリストし、pstreeそれを別々のプロセスとしてマークします。

関連がある場合は、Linux Mint Debian、カーネル3.2.0-4-amd64、GNU bash、バージョン4.2.36(1)-リリースを実行しています。


編集する:

再起動したが(やらなければならなかった)、予想通り問題がなくなりました。しかし、私はそのようなプロセスを追跡するための有用な提案にまだ興味があります。

ベストアンサー1

出力を見てくださいlsof | grep 'bash.*cwd'。これにより、プロセスの現在の作業ディレクトリが表示されます。

その場合は、pstree出力を確認してください。そうでない場合は、出力を見てくださいps aux -H。これは、どのプロセスがこれらの不思議なプロセスを所有しているかを伝えます。

疑わしいことがあるかどうか設定ファイルを確認し始めます。以下は、確認すべき事項の不完全なリストです。

~/.bash*
~/.profile
/etc/profile
/etc/bash*
/etc/cron.*/*

これは、プロセスを生成するために実行されたファイル名を含むパラメータ0を含むプロセスのパラメータが見つからないことを[process name]意味します。psこれはlsof /bin/bash、対応するプロセスが見つからないことを意味します。

おすすめ記事