Sur mon installation Jeedom, il arrive parfois que Jeedom se mette en erreur et renvoie un code 500 à toutes les requêtes http qui lui sont adressées. Cela se produit de façon tout à fait aléatoire, parfois après quelques jours, parfois après plusieurs semaines. Je soupconne un problème hardware mais n’ai pas vraiment d’éléments pour en déterminer l’origine car après plantage, le système ne répond plus au ssh.
Pour gérer une relance automatique du RPI dans cette situation (ou en cas de freeze du système), j’ai mis en oeuvre le package watchdog disponible sur les systèmes Linux. Dans mon cas, la procédure fonctionne parfaitement et Jeedom est relancé proprement et sans intervention humaine lorsque le problème se produit.
Afin d’en faire profiter la communauté, je décris ci-dessous la procédure d’installation. Celle-ci a été testée sur Debian 11 et 12. Elle doit s’appliquer à peu près de la même façon sur l’ensemble des systèmes de type Linux étant donné que le package watchdog est largement répandu.
Les instructions ci-dessous nécessitent une connexion ssh sur le système Jeedom.
Activer le watchdog matériel
-
Editer le fichier de configuration du RPI :
sudo nano /boot/config.txt( en debian 12,/boot/firmware/config.txt) -
Ajouter à la fin après
[all]la ligne suivante :dtparam=watchdog=on
- Relancer le RPI :
sudo reboot
Installer le service watchdog
- Lancer l’installation du service :
sudo apt install watchdog -y
Copier le script check_jeedom.sh dans /home/pi
Le script check_jeedom.sh va se lancer toutes les minutes et vérifier que Jeedom ne renvoie pas un code 500 à une requête http basique. Après 5 échecs, le script renvoie un code erreur différent de zéro ce qui va provoquer un reboot du système par le service watchdog. Les différentes tentatives de connexion sont loggées dans la log jeedom pi_watchdog.
Créer le fichier check_jeedom.sh dans le répertoire home de pi: sudo nano /home/pi/check_jeedom.sh
check_jeedom.sh.txt (3,4 Ko)
Copier le code du fichier ci-dessus après l’avoir adapté si nécessaire à votre configuration. Sauvegarder et quitter.
Rendre le fichier executable avec la commande : sudo chmod +x /home/pi/check_jeedom.sh
Vérifier que le fichier est bien exécutable avec la commande : file /home/pi/check_jeedom.sh
![]()
Si on n’a pas le résultat ci-dessus, c’est probablement parce que le fichier a été modifié dans un éditeur Windows.
![]()
Dans ce cas, le rendre compatatible avec unix avec la commande :
-
si nécessaire, installer le package dos2unix avec la commande
sudo apt update && sudo apt install dos2unix -y -
modifier le script:
sudo dos2unix check_jeedom.sh -
Exécuter le fichier et vérifier qu’aucune erreur n’est affichée :
sudo /home/pi/check_jeedom.sh
Configurer le service watchdog
Avant de faire la configuration ci-dessous, il faut s’être assuré que les contrôles du point précédent ont bien été effectués sinon il est possible que le système redémarre toutes les 5 minutes.
Modifier le fichier de configuration de watchdog : sudo nano /etc/watchdog.conf
Décommenter et modifier les lignes :
watchdog-device = /dev/watchdog
watchdog-timeout = 15
Laisser les lignes :
realtime = yes
priority = 1
Ajouter dans la section « User-specified tests » les lignes :
test-binary = /home/pi/check_jeedom.sh
test-timeout = 30
Sauvegarder le fichier.
Pour rendre effecitves les mises à jour, relancer le service watchdog avec la commande : sudo systemctl restart watchdog
Vérifier que tout se passe bien
- Message toutes les minutes dans la log pi_watchdog de jeedom
- Pas de rédémarrage intempestif
Par défaut, le service se lance au démarrage. On peut désactiver le lancement automatique du service watchdog avec la commande : sudo systemctl disable watchdog
Commandes pour gérer le service watchdog
Vérifier l’état du service : sudo systemctl status watchdog
Arréter le service : sudo systemctl stop watchdog
Démarrer le service : sudo systemctl start watchdog
Supprimer le package watchdog et les fichiers de configuration: sudo apt purge watchdog



