My boring Blog

Home page di Mauro Frigerio

Configurare watchdog su Raspberry Pi

12-03-2021 Tempo di lettura 2 minuti Article

Al giorno d’oggi è facile e poco costoso ottenere delle SIM per applicazioni da gestire a distanza, situate spesso in luoghi remoti. Io ho una casa in montagna che voglio, a due ore di macchina da dove abito. Li la corrente può saltare ogni tanto, oppure il collegamento con l’antenna del provider non sempre funziona bene.

In uno di questi casi mi è capitato di perdere il collegamento con il Raspberry che mi fa da VPN router. Cosa fare per evitare queste situazioni? Un riavvio di solito aiuta sempre, o come dicono in tedesco: “reboot tut immer gut”. Ma come fare se non si ha più la comunicazione? Si attiva un watchdog sul Raspberry. Alcuni si chiederanno cos’è un watchdog, perchè non tutti hanno programmato dei microcontrollori. Lì è nato il watchdog che permette di riavviare il microcontrollore se il programma si blocca, spesso ero un timer da resettare regolarmente e se non veniva fatto in tempo allora tutto si riavviava.

Esempio pratico

Abbiamo un Raspberry che quando funziona normalmente riesce a raggiungere il nostro router all’indirizzo 192.168.1.1. Il watchdog verifica con un ping regolari ogni 30 secondi la possibilità di raggiungere l’IP del router, se non è possibile si procede con un reboot del Raspberry.

Passaggi per il Raspberry

Installare watchdog sul Raspberry, quindi in una finestra del terminale o in SSH eseguire il seguente comando:

sudo apt install watchdog

Creare o modificare il file di configurazione di watchdog

sudo nano /etc/watchdog.conf

Copiare o mdificare i seguenti parametri per eseguire il ping di 192.168.1.1 ogni 30 secondi.

ping            = 192.168.1.1       # IP da testare
repair-binary   = /usr/sbin/reboot  # comando da eseguire in caso di problemi
admin           = root
interval        = 30                # intervollo del ping (deve essere < di 59)
realtime        = yes
priority        = 1

Avviare il servizio watchdog e testare lo stato:

sudo service watchdog start

sudo service watchdog status

Salvate il file e riavviate il Raspberry e provate a interrompere il collegamento per verificare che il watchdog funzioni.

sudo reboot

Osservazioni

  • Il comando da eseguire in caso di problemi può essere differente da un reboot, potete modificare il valore di repair-binary con il vostro comando.

  • Si possono aggiungere multipli indirizzi IP da verificare

  • Ci sono parecchie configurazioni che possono essere eseguite, consultate il manuale con il comando man watchdog e man watchdog.conf

  • Esistono delle HAT per avere un watchdog hardware, che permettono di essere indipendenti dal OS. Perchè potrebbe capitare che il watchdog software sia bloccato da qualche processo


Crediti foto di copertina: foto di Benjamin Nelan from Pixabay