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
、対応するプロセスが見つからないことを意味します。
答え2
次の出力も表示できます。
ps -p <pid> -o pid,user,tty,comm,args
一部のシェルスクリプトは出力にまたはマークされていますが、出力のパラメータは/bin/bash
実行中の正確なスクリプトを提供する必要があります。perl
top
args
ps