Raspberry Pi/Wifi Auto Restart

From Wiki

Requirements

  • /etc/network/interfaces
allow-hotplug wlan0
iface wlan0 inet dhcp
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf


Watchdog script

  • /srv/scripts/wifi_watchdog.sh
#!/bin/bash
check_interval=60
router_ip=192.168.111.1
log=/var/log/wifi.log

# make sure we aren't running already
what=`basename $0`
for p in `ps h -o pid -C $what`; do
        if [ $p != $$ ]; then
                exit 0
        fi
done

# log settings
exec 1> /dev/null
exec 2>> $log
echo $(date) > $log


# wifi restart commands
startWifi () {
        echo $(date)" attempting restart..." >> $log
        ifdown wlan0
        ifup wlan0
        sleep 1
}

# check loop
while [ 1 ]; do
        ping -c 1 $router_ip & wait $!
        if [ $? != 0 ]; then
                startWifi
        else sleep $check_interval
        fi
done