L’uso di connessioni di rete wifi è indubbiamente molto comodo ma, rispetto alle classiche connessioni tramite cavo, ha lo svantaggio di poter essere soggetto a maggiore probabilità di disconnessione.
Cosa fare se avete dei sistemi che tendono, per varie ragioni, a perdere la connessione all’access point? Semplice : create uno script che verifica lo stato della connessione ed eventualmente riavvia wpa_supplicant.
Nota: quanto segue è stato testato su un RaspberryPi 3 con installato Raspbian.
Ecco lo script che riavvia wpa_supplicant (modificate il valore di WLAN in modo da inserire il nome della vostra interfaccia di rete wireless)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#!/bin/sh WLAN=wlan0 DEAD=$(service wpa_supplicant status 2>/dev/null | grep -i dead) YESIP=$( ip addr show $WLAN | grep "inet\b" | awk '{print $2}' | cut -d/ -f1 ) CMD=$( ps -eo args | grep wpa_suppl | grep -v grep ) if [ "$YESIP" == "" ]; then DEAD="DEAD" else ping 8.8.8.8 -c 5 >/dev/null 2>/dev/null if [ "$?" != "0" ]; then DEAD="DEAD" else DEAD="" fi fi if [ "$DEAD" != "" ]; then pkill -9 wpa_supplicant $CMD & fi |
Per automatizzare questo processo potete salvare quanto mostrato qui sopra in un file ( es: /usr/local/bin/restart_wpa_supplicant), dare al nuovo file i permessi di esecuzione e inserirlo nel crontab (di root!) con esecuzione ogni 10 minuti.