Advertisement
DanikKUL

cpu usage

Feb 18th, 2023
943
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 0.96 KB | None | 0 0
  1. #!/bin/bash
  2. PID=$1
  3. if [ -z "$PID" ]; then
  4.     echo Usage: $0 PID
  5.     exit 1
  6. fi
  7.  
  8. PROCESS_STAT=($(sed -E 's/\([^)]+\)/X/' "/proc/$PID/stat"))
  9. PROCESS_UTIME=${PROCESS_STAT[13]}
  10. PROCESS_STIME=${PROCESS_STAT[14]}
  11. PROCESS_STARTTIME=${PROCESS_STAT[21]}
  12. SYSTEM_UPTIME_SEC=$(tr . ' ' </proc/uptime | awk '{print $1}')
  13.  
  14. CLK_TCK=$(getconf CLK_TCK)
  15.  
  16. let PROCESS_UTIME_SEC="$PROCESS_UTIME / $CLK_TCK"
  17. let PROCESS_STIME_SEC="$PROCESS_STIME / $CLK_TCK"
  18. let PROCESS_STARTTIME_SEC="$PROCESS_STARTTIME / $CLK_TCK"
  19.  
  20. let PROCESS_ELAPSED_SEC="$SYSTEM_UPTIME_SEC - $PROCESS_STARTTIME_SEC"
  21. let PROCESS_USAGE_SEC="$PROCESS_UTIME_SEC + $PROCESS_STIME_SEC"
  22. let PROCESS_USAGE="$PROCESS_USAGE_SEC * 100 / $PROCESS_ELAPSED_SEC"
  23.  
  24. echo The PID $PID has spent ${PROCESS_UTIME_SEC}s in user mode, ${PROCESS_STIME_SEC}s in kernel mode. Total CPU usage is ${PROCESS_USAGE_SEC}s
  25. echo The process has been running for ${PROCESS_ELAPSED_SEC}s. So, the process has used ${PROCESS_USAGE}% of CPU
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement