Bizonyos időközönként a Pi úgy gondolja, hogy nem akar tovább kommunikálni a routerrel és lekapcsolja a wifi-t. Volt, hogy 1-2 napot ment, de volt, hogy újraindítás után 1-2 órával már el is dobta a kapcsolatot…

Az alábbi script-et cronban ( @reboot ) meghívva figyeli a csatlakozást és szükség esetén újra aktiválja a wlan0-t:

#!/bin/bash
while true ; do
   if ifconfig wlan0 | grep −q "inet addr:" ; then
      sleep 60
   else
      echo "Network connection down! Attempting reconnection."
      ifdown −−force wlan0
      sleep 10
      ifup −−force wlan0
      sleep 10
    fi
done

UPDATE 2017.01.31

Cron megvalósítás:
Hozzuk létre a /bin/network-monitor.sh fájlt, az alábbi tartalommal:

#!/bin/bash

LOGFILE=/tmp/network-monitor.log

if ifconfig wlan0 | grep -q "inet addr:" ;
then
        echo "$(date "+%m %d %Y %T") : Network is OK" >> $LOGFILE
else
        echo "$(date "+%m %d %Y %T") : Connection down! Attempting reconnection." >> $LOGFILE
        ifup --force wlan0
        OUT=$? #save exit status of last command to decide what to do next
        if [ $OUT -eq 0 ] ; then
                STATE=$(ifconfig wlan0 | grep "inet addr:")
                echo "$(date "+%m %d %Y %T") : Current state is" $STATE >> $LOGFILE
        else
                echo "$(date "+%m %d %Y %T") : Failed" >> $LOGFILE
        fi
fi

Arch linux esetén használjuk ezt:

#!/bin/bash

LOGFILE=/tmp/network-monitor.log

if ifconfig wlan0 | grep -q "inet " ;
then
        echo "$(date "+%m %d %Y %T") : Network is OK" >> $LOGFILE
else
        echo "$(date "+%m %d %Y %T") : Connection down! Attempting reconnection." >> $LOGFILE
        ifconfig wlan0 up
        OUT=$? #save exit status of last command to decide what to do next
        if [ $OUT -eq 0 ] ; then
                STATE=$(ifconfig wlan0 | grep "inet ")
                echo "$(date "+%m %d %Y %T") : Current state is" $STATE >> $LOGFILE
        else
                echo "$(date "+%m %d %Y %T") : Failed" >> $LOGFILE
        fi
fi

Adjunk futtatási jogot a fájlnak:

chmod +x /bin/network-monitor.sh

Adjuk hozzá az alábbi sort a root cronjához (sudo crontab -e):

*/5 * * * * network-monitor.sh