#!/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 }