Files
wwan_iface_watchdog/wwan-iface-watchdog
2018-05-24 23:56:02 -04:00

52 lines
1.7 KiB
Bash
Executable File

#!/bin/sh /etc/rc.common
# write wwan-iface-watchdog.sh script
function write_script() {
[ -d /root/scripts ] || mkdir -p /root/scripts
if [ ! -e /root/scripts/wwan-iface-watchdog.sh ]; then
echo '#!/bin/sh' > /root/scripts/wwan-iface-watchdog.sh
echo '' >> /root/scripts/wwan-iface-watchdog.sh
echo 'while true; do' >> /root/scripts/wwan-iface-watchdog.sh
echo ' tries=0' >> /root/scripts/wwan-iface-watchdog.sh
echo ' while [[ $tries -lt 5 ]]; do' >> /root/scripts/wwan-iface-watchdog.sh
echo ' /bin/ping -q -c 1 8.8.8.8 && sleep 5 && continue 2' >> /root/scripts/wwan-iface-watchdog.sh
echo ' tries=$((tries+1))' >> /root/scripts/wwan-iface-watchdog.sh
echo ' done' >> /root/scripts/wwan-iface-watchdog.sh
echo ' logger "Interface disconnected, restarting wwan..."' >> /root/scripts/wwan-iface-watchdog.sh
echo ' /sbin/ifup wwan' >> /root/scripts/wwan-iface-watchdog.sh
echo ' sleep 60' >> /root/scripts/wwan-iface-watchdog.sh
echo 'done' >> /root/scripts/wwan-iface-watchdog.sh
chmod +x /root/scripts/wwan-iface-watchdog.sh
fi
}
START=99
PIDDIR=/var/pids
PIDFILE=/var/pids/wwan-iface-watchdog
# init functions
start() {
logger "Starting wwan iface watchdog"
write_script
[ -d $PIDDIR ] || mkdir -p $PIDDIR
[ -f $PIDFILE ] && exit 1
/root/scripts/wwan-iface-watchdog.sh > /dev/null 2>&1 &
echo $! > $PIDFILE
}
stop() {
logger "Stopping wwan iface watchdog"
kill `cat $PIDFILE`
rm $PIDFILE
}
restart() {
logger "Restarting wwan iface watchdog"
kill `cat $PIDFILE`
rm $PIDFILE
write_script
/root/scripts/wwan-iface-watchdog.sh > /dev/null 2>&1 &
echo $! > $PIDFILE
}