summaryrefslogtreecommitdiff
path: root/ioslay-firefox
diff options
context:
space:
mode:
Diffstat (limited to 'ioslay-firefox')
-rwxr-xr-xioslay-firefox53
1 files changed, 53 insertions, 0 deletions
diff --git a/ioslay-firefox b/ioslay-firefox
new file mode 100755
index 0000000..eac3184
--- /dev/null
+++ b/ioslay-firefox
@@ -0,0 +1,53 @@
1#!/bin/sh
2
3if [ "$1" = -q ]
4then
5 exec 2>/dev/null
6 shift
7fi
8
9web_content_pids()
10{
11 top -w512 -bn1 -o '%MEM' | sed -e '1,/^$/d' | {
12 while read line
13 do set -- $line
14 [ "${12} ${13}" = "Web Content" ] || continue
15 echo $1
16 done
17 }
18}
19
20set -- $(web_content_pids | tac)
21
22set -- $(printf "\055\055pid=%s " $*)
23
24over_count=0
25sudo -- iotop -qq -b "$@" |
26 while read line
27 do
28 case "$line" in
29 "Total DISK"*)
30 if [ "$OVER" ]
31 then
32 over_count=$((over_count + 1))
33 if [ "$over_count" -gt 3 ]
34 then
35 fireslay
36 fi
37 over=
38 else
39 over_count=0
40 fi
41 ;;
42 "Current DISK"*) continue ;;
43 *)
44 set -- $line
45 pct=${10%.*}
46 if [ $pct -gt 90 ]
47 then
48 printf '[%d] %s%% %s\n' "$over_count" "${10}" "${12}" >&2
49 over=y
50 fi
51 ;;
52 esac
53 done