
私はLinuxのtopコマンドを使ってプロセスのCPU、RAM、計算時間、そしてプロセスが生成するすべての子プロセスを監視したいと思います。
次の構文を使用してtopコマンドの出力を保存できることがわかりました。
$ top -b > top.txt
次に、Pythonスクリプトを使用して結果を解析します。ただし、監視している特定のプロセスとその子プロセスを確認することはできません。
f
topの実行中にPPIDフィールドを入力してtopに追加できますが、そのオプションを使用するバッチモードでは機能しないことがわかりました-b
。
結果を解析するときに興味のあるプロセスを見つけるためにPPIDを表示し、topコマンドの出力を保存する方法はありますか?
私の特定の問題は、バッチモードでtopを使用するときに出力ファイルにPPIDを含めることです。プロセスのCPU、RAM、およびコンピューティング時間を監視するためのより良い提案がある場合は、歓迎します。
答え1
インタラクティブトップディスプレイにPPID(または他のフィールド)を追加したら、単に次のものを使用できますW(首都勝)。その後、終了(q)して使用すると、top -b
インタラクティブに変更したフィールドが一番上に含まれて表示されます。
答え2
top
ps
プロセスの対話型および更新されたバリエーションを表示するために作成されました。ここでコマンドを使用する方が簡単で自然ですps
。たとえば、親プロセス情報の場合:
ps -ejf > top.txt
またはユーザーの場合
ps -ejf | awk '{if ($1=="'${USER}'" || NR==1) {print $0}}' > top.txt
または、プロセスツリーの親/子をツリー形式で視覚化します。
ps auxfww > top.txt
PPIDと単純ツリー形式の組み合わせ:
ps -ejfH | awk '{if ($1=="'${USER}'" || NR==1) {print $0}}' > top.txt