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