そのため、特定のマシンで上位 3 つの CPU を「集中的に使用する」プロセスを照会しようとしましたが、次のシェル コマンドでそれを実行できることがわかりました。ps -eo pcpu,pid,user,args | sort -k 1 -r | head -3
このデータを Python スクリプト内で使用したいので、subprocess
モジュールを介して上記のコマンドの出力をキャプチャできるようにする必要があります。次は機能しますが、上位 3 つに制限していないため、巨大な文字列を返すだけです。
psResult = subprocess.check_output(['ps', '-eo', 'pcpu,user,args'])
これがどのように機能するのかよくわかりませんsubprocess.check_output
..私が試したわずかな試みで:
subprocess.check_output(['ps', '-eo', 'pcpu,user,args', '|', 'sort', '-k', '1', '-r', '|', 'head', '-3'])
エラーが発生します:ps: illegal argument: |
Python 内でパイプ記号を使用するにはどうすればよいです|
か、または によって返される巨大な文字列に対して信じられないほどの量の解析を行わなくてもソートを実行するには、他の方法を使用するにはどうすればよいpsResult = subprocess.check_output(['ps', '-eo', 'pcpu,user,args'])
でしょうか?
ありがとう!よろしく、 -kstruct