From fb983f5dbc51273a63b0b5345e4065aa702fe3ff Mon Sep 17 00:00:00 2001 From: Sukru Senli Date: Fri, 22 Dec 2017 15:21:30 +0100 Subject: [PATCH] questd: imonitor: bring down and up the wireless radios when bsd or acsd crashes --- questd/files/sbin/imonitor | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/questd/files/sbin/imonitor b/questd/files/sbin/imonitor index 0efdf6ab4..74055057f 100755 --- a/questd/files/sbin/imonitor +++ b/questd/files/sbin/imonitor @@ -140,9 +140,13 @@ check_ubus_network_call() { restart_bsd() { - logger -s -t $0[$$] "Restarting bsd." - killall -q -KILL bsd - bsd + logger -s -t $0[$$] "Restarting WiFi and Band Steering daemon due to bsd hangup." + killall -q -15 bsd 2>/dev/null + wlctl -i wl0 down 2>/dev/null + wlctl -i wl1 down 2>/dev/null + wlctl -i wl0 up 2>/dev/null + wlctl -i wl1 up 2>/dev/null + bsd & } check_bsdcall() @@ -159,9 +163,13 @@ check_bsdcall() restart_acsd() { - logger -s -t $0[$$] "Restarting acsd." - killall -q -KILL acsd - acsd & + logger -s -t $0[$$] "Restarting WiFi and Auto Channel Selection daemon due to acsd high CPU usage." + killall -q -9 acsd 2>/dev/null + wlctl -i wl0 down 2>/dev/null + wlctl -i wl1 down 2>/dev/null + wlctl -i wl0 up 2>/dev/null + wlctl -i wl1 up 2>/dev/null + acsd } check_acsd() @@ -173,7 +181,7 @@ check_acsd() for p in $pcpu; do p=${p%%%*} - if [ "$p" -ge "20" ]; then + if [ "$p" -ge "40" ]; then return 1 fi done