- Messaggi: 434
- Karma: 5
- Ringraziamenti ricevuti 78
Postate qui domande o segnalate problemi / bug che riscontrate,
Watchdog
Ho trovato una soluzione molto interessante che non conoscevo: il watchdog
E' un counter che viene implementato a livello hardware del SoC (quindi indipendente dal SO) che provvede a forzare il reboot del sistema dopo un intervallo di tempo, a meno che non riceva un segnale (feed) dall'applicazione.
In questo modo se il SO si blocca non invia più il feed al counter e dopo qualche secondo parte il reboot.
Mi sembra una bella soluzione da testare per aumentare l'affidabilità in caso di problemi... che ne dite?
Un po' di fonti:
binerry.de/post/28263824530/raspberry-pi-watchdog-timer
raspberrypi.werquin.com/post/44890705367...-deamon-running-with
pi.gadgetoid.com/article/who-watches-the-watcher
Si prega Accedi a partecipare alla conversazione.
- meteosismi
- Offline
- Junior Boarder
- Messaggi: 22
- Ringraziamenti ricevuti 2
Non ne capisco molto di comandi linux ma penso che questo watchdog possa risolvere i problemi, d'altronde su sistemi complessi questa opzione è attiva per garantire il continuo funzionamento.
Antonio.
Si prega Accedi a partecipare alla conversazione.
Sint Wind PI ha un suo watchdog software ( class WatchDog in service.py ) ma ovviamente non può fare molto per blocchi del SO ; serve solo per i casi di eventuali blocchi di Sint Wind PI .
Sono ancora un pò impegnato con Open Meteo Data che vorrei terminare e metterò in coda l'uso del watchdog hardware della Raspberry PI.
Nel frattempo se qualcuno vuole implementarlo come pluging credo non siano più di 4 istruzioni molto simili a quelle del watchdog software .....
Si prega Accedi a partecipare alla conversazione.
- roberto2011
- Offline
- Moderatore
Ciao Antonio avevi provato a fare un crontab con il reboot, per capire se era swpi che si bloccava o il raspberry???
Sensori Davis +BME280 + Raspberry b+ webCam serrasanta.fleanet.it (Eremo di Serrasanta - Gualdo Tadino - 1.340 m s.l.m.)
Si prega Accedi a partecipare alla conversazione.
Delle mie 4 schede attive 24/24 l'unico problema l'ho avuto sulla stazione di Sigillo nella quale ho dovuto sostituire la scheda SD circa un mese fa perché mal funzionante.
Si prega Accedi a partecipare alla conversazione.
- roberto2011
- Offline
- Moderatore
Sensori Davis +BME280 + Raspberry b+ webCam serrasanta.fleanet.it (Eremo di Serrasanta - Gualdo Tadino - 1.340 m s.l.m.)
Si prega Accedi a partecipare alla conversazione.
Forse si ma complica un pò l'installazione. Se lo integro in swpi basterebbe per molti fare un semplice aggiornamento .. per ora approfondiamo il funzionamento poi vediamo
Si prega Accedi a partecipare alla conversazione.
- meteosismi
- Offline
- Junior Boarder
- Messaggi: 22
- Ringraziamenti ricevuti 2
Antonio.
E' probabile sia anche la sd, ma non credo perchè nonostante poi spengo brutalmente levando l'alimentazione dopo parte senza errori ... adesso c'è una SD Kingston 4 gb class 4.
Si prega Accedi a partecipare alla conversazione.
- Messaggi: 434
- Karma: 5
- Ringraziamenti ricevuti 78
quello hardware dovrebbe incrementare un counter proprio dentro la CPU, per cui è indipendente da software dovrebbe riuscire comunque a riavviare… insomma è da provare!
Si prega Accedi a partecipare alla conversazione.
- meteosismi
- Offline
- Junior Boarder
- Messaggi: 22
- Ringraziamenti ricevuti 2
Grazie, Antonio.
Si prega Accedi a partecipare alla conversazione.
- roberto2011
- Offline
- Moderatore
sudo modprobe bcm2708_wdog
echo "bcm2708_wdog" | sudo tee -a /etc/modules
sudo apt-get install watchdog
sudo update-rc.d watchdog defaults
sudo nano /etc/watchdog.conf
togliere il commento a
#watchdog-device
#max-load-1 = 24
sudo /etc/init.d/watchdog start
Sensori Davis +BME280 + Raspberry b+ webCam serrasanta.fleanet.it (Eremo di Serrasanta - Gualdo Tadino - 1.340 m s.l.m.)
Si prega Accedi a partecipare alla conversazione.
- Messaggi: 434
- Karma: 5
- Ringraziamenti ricevuti 78
- roberto2011
- Offline
- Moderatore
Sensori Davis +BME280 + Raspberry b+ webCam serrasanta.fleanet.it (Eremo di Serrasanta - Gualdo Tadino - 1.340 m s.l.m.)
Si prega Accedi a partecipare alla conversazione.
- Messaggi: 434
- Karma: 5
- Ringraziamenti ricevuti 78
Mi torna poco… che vuol dire in questo load average? A quanto ho capito, non dovrebbe essere semplicemente un counter che decrementa in automatico a meno che non riceva in "input" qualcosa?roberto2011 ha scritto: Reset your Pi if the load average exceeds 24 in any 1-minute span.!
Si prega Accedi a partecipare alla conversazione.
- Messaggi: 434
- Karma: 5
- Ringraziamenti ricevuti 78
L'heart beat di default è 10 secondi.
Ho notato che il file di config ha tante opzioni interessanti che è possibile attivare, tra cui il test del ping, la temperatura cpu massima, ecc
#ping = 172.31.14.1
#ping = 172.26.1.255
#interface = eth0
#file = /var/log/messages
#change = 1407
# Uncomment to enable test. Setting one of these values to '0' disables it.
# These values will hopefully never reboot your machine during normal use
# (if your machine is really hung, the loadavg will go much higher than 25)
max-load-1 = 24
#max-load-5 = 18
#max-load-15 = 12
# Note that this is the number of pages!
# To get the real size, check how large the pagesize is on your machine.
#min-memory = 1
#repair-binary = /usr/sbin/repair
#repair-timeout =
#test-binary =
#test-timeout =
watchdog-device = /dev/watchdog
# Defaults compiled into the binary
#temperature-device =
#max-temperature = 120
# Defaults compiled into the binary
#admin = root
#interval = 1
#logtick = 1
#log-dir = /var/log/watchdog
# This greatly decreases the chance that watchdog won't be scheduled before
# your machine is really loaded
realtime = yes
priority = 1
# Check if syslogd is still running by enabling the following line
#pidfile = /var/run/syslogd.pid
Si prega Accedi a partecipare alla conversazione.
A me è successo che a volte si bloccasse il swpi per una chiamata non correttamente terminata (ogni tot minuti nel log c'era un messaggio tipo "waiting for hangup"), l'unico modo di far ripartire la baracca era proprio un hard reset.
Sarebbe possibile eventualmente subordinare l'invio dell'hartbeat non solo ad un blocco del sistema ma anche al reiterarsi di errori tipo quello nel sistema attivo?
Si prega Accedi a partecipare alla conversazione.
- Centauri
- Visitatori
Sono d'accordo con Tony sul fatto che non sia una soluzione, ma un work around, ma dal momento che le indagini le ho svolte tutte, male non fa e poi se viene concepito un reboot all'interno di swpi come configurazione, se ci mettiamo un cane da guardia esterno male non fa, anche per prevenire blocchi derivanti da altri servizi.
Ribadisco ottima segnalazione
Si prega Accedi a partecipare alla conversazione.
- Centauri
- Visitatori
Una volta lanciato il demone se si blocca il SintWind con il comando killswpi.sh, dopo il tempo prefissato il sistema rebotta.
Spiegazioni brevi: il demone controlla che il file swpi.cfg che viene aggiornato ogni 10 minuti effettivamente sia aggiornato se così non fosse dopo 15 minuti effettua il reboot del RaspBerry
--== Vado con le spiegazioni lunghe ==--
Procedura per abilitare WatchDog hardware su RaspBerry
Seguire questi semplici passi una volta connessi con SSH sul proprio PI
scaricare pacchetto watchdog:
sudo apt-get install watchdog
attendere scaricamento pacchetti in seguito digitare:
sudo update-rc.d watchdog defaults
editare il file di configurazione:
sudo nano /etc/watchdog.conf
inserire sotto a queste righe:
#file = /var/log/messages
#change = 1407
#
file = /home/pi/swpi/swpi.cfg
change = 920
aggiungete anche:
# email if empty not send email to root address
admin =
al termine CTRL X rispondere Si al salvataggio del file di configurazione.
in caso di necessità il servizio si abilita / disabilita con questi comandi:
sudo /etc/init.d/watchdog start
oppure
sudo /etc/init.d/watchdog stop
per vederne lo status
sudo /etc/init.d/watchdog status
--== FINE DELLE SPIEGAZIONI ==--
Ho messo come indirizzo admin = (niente) altrimenti WatchDog cerca di inviare una email al utente root anche se non è configurato, quindi risulta necessario scaricare sendmail o altri programmi per l'invio della posta. (se volete farlo seguite il link in fondo a questo messaggio.
Il percorso del file è relativo al file di configurazione di swpi e 920 sono i secondi tra un ciclo e l'altro di controllo.
Il demone Watchdog esegue un controllo sul file swpi.cfg e se non è cambiato dopo 15 minuti (920 sec.) esegue un reboot del sistema.
Inizialmente avevo inserito la creazione e modifica di un file dentro a swpi.py verso la fine vicino al watchdog software poi mi sono accorto che swpi.cfg cambia dopo essere stato riletto per cui non ho creato complicazioni nel codice di Tony e ho semplicemente verificato l'aggiornamento del file in questione in un periodo di tempo superiore al ciclo di aggiornamento dei dati di SintWind.
Se volete provarlo e verificare se funziona o avete suggerimenti per migliorare questo semplice controllo, fate un fischio.
Ho preso spunto da qui:
www.domoticz.com/wiki/Setting_up_the_raspberry_pi_watchdog
Informazioni dettagliate su watchdog qui:
linux.die.net/man/8/watchdog
e sul file di configurazione:
linux.die.net/man/5/watchdog.conf
questo sul tipo di controllo "stat" che viene eseguito:
linux.die.net/man/2/stat
Si prega Accedi a partecipare alla conversazione.
- Messaggi: 434
- Karma: 5
- Ringraziamenti ricevuti 78
Potrei adattare il sistema anche al mio caso. Ho infatti una installazione con rfm01 difficoltoso, a cui ho deciso di fare un reboot di swpi ogni ora (non di tutto il raspberry, ma killo e riavvio solo swpi.py) con un cron.
Immagino che potrei controllare l'aggiornamento di meteo.txt o wh1080rf.txt con il watchdog e rebootare solo se necessario.
Mi viene inoltre in mente che potremmo usare un "soft" reboot (solo di swpi) in caso di blocco di questo, e di un "hard" reboot in caso di blocco di sistema.
Si prega Accedi a partecipare alla conversazione.
- Centauri
- Visitatori
Tra l'altro sarebbe comodo anche una email per sapere se e quando interviene il watchdog, ma non volevo installare le librerie per il sendmail. Inoltre visto che comunque ad ogni riavvio mi arriva l'email con il cambio IP è ovvio che se si è riavviato fuori orario qualcosa è andato storto.
Nel mio caso come nel tuo il RaspBerry non si pianta ed è sempre raggiungibile quindi un kill solo del servizio che non gira dovrebbe essere sufficiente.
L'idea del file swpi.cfg mi è venuta casualmente, come detto avevo inserito un paio di righe dentro al codice di Tony per creare un file ad hoc e mentre controllavo il cambiamento del file mi sono accorto che cambiava anche swpi.cfg
Quindi ho scelto la strada meno complicata. Si può controllare anche il meteo.txt, ma il percorso potrebbe variare da installazione ad insitallazione e volevo fare una cosa semplice e per tutti.
A mio avviso dal momento che dentro al codice viene eseguito un chmod +x ciclicamente sui files necessari al funzionamento di Swpi, credo che sia ininfluente su quale files dei suddetti viene eseguito il controllo.
Se invece è relativo alla creazione o aggiornamento di un specifico sensore allora può avere una logica.
Tutta questa complicazione nasce dal fatto che un semplice controllo del pid da parte del demone watchdog non è implementabile nel mio caso, perchè il pid risulta attivo anche quando sintwind dorme.
Se fai delle prove tienimi aggiornato, io farò altrettanto.
Si prega Accedi a partecipare alla conversazione.
- Centauri
- Visitatori
Non ho eliminato il problema, ma almeno adesso non ci penso più
Si prega Accedi a partecipare alla conversazione.
tony ha scritto: Bene .. d'altronde l'informatica è un continuo workaround
Volevo solo segnalare che riscontravo alcuni blocchi inspiegati del Raspy, fino al blocco a ripetizione ad ogni reboot. Mi sono deciso e ho sostituito la SD con una Sandisk Classe 10. Ho aggiornato il firmware ed effettuato l'update, ho reinstallato il watchdog e poi provando ad aggiornare SWPI venivo "dirottato" sulla index della procedura di configurazione Web.
Allora ho reinstallato ancora il tutto scoprendo che l'ordine corretto degli aggiornamenti deve partire sempre da SWPI e poi tutto il resto (apt-get update, apt-get upgrade, rpi-update).
Alla fine non ho installato alcun watchdog ed ora Raspy è attivo da una settimana senza alcun problema. Inoltre, mi sembra che sia diventato molto più rapido.
Se può essere utile...
Per finire, ancora complimenti a Tony e tutti i numerosi partecipanti a questo Forum che con il loro contributo stanno facendo crescere Sint Wind PI.
Si prega Accedi a partecipare alla conversazione.
mi ha cambiato firmware tornando a quello vecchio!!!
poi riprovando il rpi..nulla diceva che era aggiornato..
allora ho dato
sudo rpi-update 3626277a5915a7cfeb90d536355227570c6f8c17
e cosi sembra averlo fatto
Linux swpi 3.10.19+ #600 PREEMPT Sat Nov 16 20:34:43 GMT 2013 armv6l GNU/Linux
Si prega Accedi a partecipare alla conversazione.
- Centauri
- Visitatori
I reboot avvengono solo all'ora predefinita e via software da SintWInd.
Si prega Accedi a partecipare alla conversazione.
Mi son deciso quindi di procedere la tua strada seguendo le vostre indicazioni, capisco poco di informatica e parto dall'inizio.... dove posso scaricare il pacchetto watchdog adatto al raspberry?
Questa è la prima richiesta penso che se siete disponibili ne seguiranno altre
Grazie
Sensori PCE-FWS20, DVB-T 820T2 SDR, BMP085, Raspberry Pi mod. B www.meteoportocervo.it (Abbiadori Porto Cervo - Arzachena - OT) 108 m s.l.m.)
Si prega Accedi a partecipare alla conversazione.