Dans mes recherches jusqu'à présent, j'ai remarqué qu'il existe deux approches pour activer une horloge de surveillance sur la framboise: utiliser systemd ou installer watchdog. Tout est bien expliqué ici: https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=147501#
Et j'ai réussi à le faire fonctionner dans les deux sens, mais pas pendant le redémarrage / l'arrêt. J'ai utilisé un forkbomb pour le tester et il réagit à cela, cependant quand j'essaye:
sudo poweroff
Il reste juste en bas. Je pense donc qu'il existe un moyen de forcer le chien de garde à continuer de fonctionner pendant le redémarrage / l'arrêt afin qu'il le réinitialise après quelques secondes s'il ne démarre pas correctement?
La plupart des approches démarrent le chien de garde au démarrage, mais que se passe-t-il si vous en avez besoin en permanence? Ma framboise s'est arrêtée au redémarrage et j'ai dû la débrancher / la brancher manuellement pour la faire fonctionner.
MISE À JOUR:
Certaines choses sont beaucoup plus claires pour moi maintenant. Il y a 3 choses à considérer:
- minuterie de surveillance
- démon de surveillance
- démon de service de surveillance
horloge de surveillance: un registre qui déclenche une réinitialisation lorsqu'il déborde, chaque cycle de RPI qu'il incrémente, doit être effacé (kické) régulièrement pour éviter la réinitialisation
Pour l'exécuter au démarrage, ajoutez ce qui suit à /boot/config.txt :
dtparam=watchdog=on
démon de surveillance: un processus responsable de l'effacement (coup de pied) du temporisateur de surveillance régulièrement
Installez-le:
sudo modprobe bcm2835_wdt
echo "bcm2835_wdt" | sudo tee -a /etc/modules
sudo apt-get install watchdog
sudo update-rc.d watchdog defaults
Configurez /etc/watchdog.conf :
watchdog-device = /dev/watchdog
watchdog-timeout = 14
realtime = yes
priority = 1
max-load-1 = 24
Configurez / etc / default / watchdog :
watchdog_module="bcm2835_wdt"
Pour le configurer, ajoutez ce qui suit à /etc/modprobe.d/watchdog.conf :
options bcm2835_wdt nowayout=1 heartbeat=10
référence: http://vk5tu.livejournal.com/35721.html
Le paramètre de pulsation du module du noyau est l'écart maximal entre les pulsations vues par le périphérique avant le redémarrage du matériel
Le paramètre nowayout détermine ce qui se passe lorsque le périphérique / dev / watchdog est fermé: un battement de cœur est-il toujours attendu ou non? Une valeur de 1 indique que le compte à rebours d'un redémarrage continue de fonctionner et si l'appareil n'est pas rouvert et qu'un battement de cœur est écrit, la machine redémarrera.
Activez-le (si cela ne fonctionne pas, prenez d'abord soin de watchdog.service et réessayez):
sudo systemctl enable watchdog
Surveillez-le:
sudo systemctl status watchdog
démon de service de surveillance: s'active lorsque le démon de surveillance échoue / s'arrête, exécute généralement un démon keepalive qui démarre régulièrement le chien de garde
Configurez /lib/systemd/system/watchdog.service :
# OnFailure=wd_keepalive.service
- Commenter cela désactive le démon keepalive donc une fois que le démon de surveillance échoue / s'arrête, rien n'empêchera le chronomètre de surveillance de redémarrer RPI
[Install]
WantedBy=multi-user.target
- correction d'un bug
Finalement:
Redémarrez RPI. Une fois la framboise redémarrée, tout devrait démarrer (horloge de surveillance et démon de surveillance). Pour vérifier cette utilisation:
cat /var/log/syslog | grep watchdog
Production attendue:
Jun 14 12:09:08 raspberrypi systemd[1]: Starting watchdog daemon...
Jun 14 12:09:08 raspberrypi watchdog[813]: starting daemon (5.14):
Jun 14 12:09:08 raspberrypi watchdog[813]: int=1s realtime=yes sync=no soft=no mla=24 mem=0
Jun 14 12:09:08 raspberrypi watchdog[813]: ping: no machine to check
Jun 14 12:09:08 raspberrypi watchdog[813]: file: no file to check
Jun 14 12:09:08 raspberrypi watchdog[813]: pidfile: no server process to check
Jun 14 12:09:08 raspberrypi watchdog[813]: interface: no interface to check
Jun 14 12:09:08 raspberrypi watchdog[813]: temperature: no sensors to check
Jun 14 12:09:08 raspberrypi watchdog[813]: test=none(0) repair=none(0) alive=/dev/watchdog heartbeat=none to=root no_act=no force=no
Jun 14 12:09:08 raspberrypi watchdog[813]: watchdog now set to 14 seconds
Jun 14 12:09:08 raspberrypi watchdog[813]: hardware watchdog identity: Broadcom BCM2835 Watchdog timer
Jun 14 12:09:08 raspberrypi systemd[1]: Started watchdog daemon.
Et:
ps aux|grep watchdog
Production attendue:
root 813 0.0 0.2 1888 1760 ? SLs 12:09 0:00 /usr/sbin/watchdog
pi 900 0.0 0.2 4752 1992 pts/0 S+ 12:10 0:00 grep --color=auto watchdog
TEST:
Tuez le démon de surveillance, exécutez:
ps aux|grep watchdog
Voir l'ID de processus et le tuer:
root 812 0.0 0.2 1888 1760 ? SLs 12:16 0:00 /usr/sbin/watchdog
pi 898 0.0 0.2 4752 1992 pts/0 S+ 12:16 0:00 grep --color=auto watchdog
sudo kill -9 812
Test de fourche classique, exécutez:
: (){ :|:& };:
Pour tester la réinitialisation de la framboise si le processus de redémarrage échoue, exécutez:
sudo poweroff
- avec celui-ci, j'ai eu quelques problèmes
La framboise devrait redémarrer après 15 ans environ.
sudo poweroff
. Parfois ça marche, parfois ça ne marche pas: S