シェル スクリプトでプロセスのメモリ使用量を調べたいのですが、次のコードを使用しようとしました:
while[process] do
if [ -e /proc/$pidno/statm ]; then
m=`awk '{OFS="\t";print $1,$2,$3,$6}' /proc/$pidno/statm`
perc=`top -bd .10 -p $pidno -n 1 | grep $pidno | gawk '{print \$10}'`
echo -e "$m\t$perc"
else
echo "$pidno is not running"
fi
done
しかし、コマンドを root として実行していないため、/proc にアクセスできないようです。root になる権限がありません。どうすればこれを機能させることができるか、またはメモリ使用量を取得する他の方法があれば教えてください。
プロセスの PID を持っています。
答え1
ps コマンドが最善の策です。たとえば、このコマンドはps u$pidno
仮想プロセスのサイズと常駐セットのサイズを表示します。