web-dev-qa-db-ja.com

topを使用してPPIDを表示し、ファイルに出力する

Linuxのtopコマンドを使用して、CPU、RAM、プロセスの計算時間、およびプロセスが生成するすべての子プロセスを監視しようとしています。

次の構文を使用して、topコマンドの出力を保存できることがわかりました。

$ top -b > top.txt

次に、pythonスクリプトを使用して結果を解析しています。しかし、監視している特定のプロセスとその子プロセスを特定するのに問題があります。

Topの実行中にfと入力してPPIDsフィールドをtopに追加できることがわかりましたが、これは-bオプションを指定したバッチモードでは機能しません。

結果を解析するときに興味のあるプロセスを見つけることができるように、PPIDを表示してtopコマンドの出力を保存する方法はありますか?

バッチモードでtopを使用するときに出力ファイルにPPIDを含めることについての私の質問です。 CPUを監視するより良い提案がある場合は、RAMおよびプロセスも大歓迎です。

2
Bielorusse

インタラクティブなトップディスプレイにPPID(またはその他のフィールド)を追加したら、次のコマンドを使用して構成を保存するだけです。 W大文字 w)。次に終了します(q)とtop -b、インタラクティブにtopに加えた変更からのフィールドを含めて表示します。

1
Raulinbonn

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
0
Ned64