#!/bin/bash PID=$1 if [ "x$PID" = "x" ] ; then exit 1 fi # utime USER_START=`awk '{print $14}' /proc/$PID/stat` USER_ALL_START=`head -n1 /proc/stat | awk 'BEGIN {sum = 0} { for (i = 1; i <= NF; ++i) { sum += $i } } END {print sum}'` sleep 1 USER_END=`awk '{print $14}' /proc/$PID/stat` USER_ALL_END=`head -n1 /proc/stat | awk 'BEGIN {sum = 0} { for (i = 1; i <= NF; ++i) { sum += $i } } END {print sum}'` USER=`echo "sacle=5; 100 * ($USER_END - $USER_START) / ($USER_ALL_END - $USER_ALL_START)" | bc` echo "[process] jiffies for 1 sec: $(( $USER_END - $USER_START ))" echo "[ all] jiffies for 1 sec: $(( $USER_ALL_END - $USER_ALL_START ))" echo "[ cpu%] $USER %" # stime SYS_START=`awk '{print $15}' /proc/$PID/stat` SYS_ALL_START=`head -n1 /proc/stat | awk 'BEGIN {sum = 0} { for (i = 1; i <= NF; ++i) { sum += $i } } END {print sum}'` sleep 1 SYS_END=`awk '{print $15}' /proc/$PID/stat` SYS_ALL_END=`head -n1 /proc/stat | awk 'BEGIN {sum = 0} { for (i = 1; i <= NF; ++i) { sum += $i } } END {print sum}'` SYS=`echo "scale=5; 100 * ($SYS_END - $SYS_START) / ($SYS_ALL_END - $SYS_ALL_START)" | bc` echo "[process] jiffies for 1 sec: $(( $SYS_END - $SYS_START ))" echo "[ all] jiffies for 1 sec: $(( $SYS_ALL_END - $SYS_ALL_START ))" echo "[ cpu%] $SYS %"