From 3496c34c3e5221d26ad9715c48fedaa22fb52b6e Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Tue, 19 Oct 2021 14:18:53 -0400 Subject: refactor improve ioslay --- ioslay-firefox | 55 ++++++++++++++++++++++++++----------------------------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/ioslay-firefox b/ioslay-firefox index d5b030e..9287943 100755 --- a/ioslay-firefox +++ b/ioslay-firefox @@ -21,6 +21,29 @@ set -- $(web_content_pids | tac) set -- $(printf "\055\055pid=%s " $*) + +sum() +{ + local total=0 n + for n in $* + do + total=$((total + n)) + done + echo $total +} + +keep() +{ + local n=$1 + shift + set -- $* + while [ $# -ge "$n" ] + do + shift + done + printf '%s\n' "$*" +} + log= pct_log= over_count=0 @@ -29,40 +52,14 @@ sudo -- iotop -qq -b "$@" | do case "$line" in "Total DISK"*) - pct_total=0 - for n in $pct_log - do - pct_total=$((pct_total + n)) - done - echo "$pct_total ($pct_log)" + [ "$(sum $pct_log)" -ge 85 ] && over=y || over= pct_log= - - if [ "$pct_total" -ge 95 ] - then - over=y - else - over= - fi - - set -- $log - while [ $# -ge 10 ] - do - shift - done - log=$* - + log=$(keep 9 $log) if [ "$over" ] then log="$log 1" over= - - total=0 - for n in $log - do - total=$((total + n)) - done - - if [ "$total" -ge 3 ] + if [ "$(sum $log)" -ge 3 ] then fireslay fi -- cgit v1.2.3