プロセス名/パス別に現在のプロセスCPU/メモリ使用量を取得してコンソールに印刷したいと思います。このコマンドは、連続したデータストリームを提供するのではなく、数値を出力する必要がありますps
。
ps -p PID
動作しません:
- プロセス番号がありません。 (プロセスパスがあります。)
- 現在、測定値をコンソールに一度印刷しません。
たとえば、次のようになります。
$command -getCPU | grep processPath
答え1
私の考えは、awk
次のコマンドを使用してプロセス名のプロセッサとメモリ使用量を表示できることです。
ps -C "PROCEES_NAME" -o %cpu,%mem,cmd
結果:
%CPU %MEM CMD
0.0 0.2 /usr/bin/python3 completion.py
0.0 0.1 /usr/bin/python3 lib/python/jedi/evaluate/compiled/subprocess/__main__.py lib/python
その後、awkを使用して最初の行を削除できます。
ps -C python3 -o %cpu,%mem,cmd | awk 'FNR > 1'
結果:
0.0 0.2 /usr/bin/python3 completion.py
0.0 0.1 /usr/bin/python3 lib/python/jedi/evaluate/compiled/subprocess/__main__.py lib/python
使用回数のみを取得し、他の出力をスキップするには、次のコマンドを使用できます。
ps -C "python3" -o %cpu,%mem,cmd | awk 'FNR > 1 {print $1,$2}'
結果:
0.0 0.2
0.0 0.1
$1
1行目、$2
2行目です。必要に応じて削除できます。
process_nameを使用するのは悪い考えであり、PIDを使用する方が良いです。
答え2
さて、私はトップとpsについて混乱しています。次のコマンドを使用して目的を達成できました。
$ps aux | grep <processName> | awk '{print $3}'
行3は現在のCPU比です。