Raspberry Pi/Wifi Auto Restart: Difference between revisions
Line 29: | Line 29: | ||
echo $(date) > $log | echo $(date) > $log | ||
# wifi restart commands | |||
startWifi () { | startWifi () { | ||
echo $(date)" attempting restart..." >> $log | echo $(date)" attempting restart..." >> $log | ||
ifdown wlan0 | ifdown wlan0 | ||
ifup wlan0 | ifup wlan0 | ||
sleep 1 | |||
} | } | ||
# check loop | |||
while [ 1 ]; do | while [ 1 ]; do | ||
ping -c 1 $router_ip & wait $! | ping -c 1 $router_ip & wait $! | ||
if [ $? != 0 ]; then | if [ $? != 0 ]; then | ||
startWifi | startWifi | ||
else sleep $check_interval | else sleep $check_interval | ||
fi | fi | ||
done | done | ||
</pre> | </pre> |
Latest revision as of 15:13, 15 April 2017
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