Mise en place d'un Watchdog

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

1 Introduction

Un chien de garde, encore désigné sous l'anglicisme watchdog, est un circuit électronique ou un logiciel utilisé en électronique numérique pour s'assurer qu'un automate ou un ordinateur ne reste pas bloqué à une étape particulière du traitement qu'il effectue. C'est une protection destinée généralement à redémarrer le système, si une action définie n'est pas exécutée dans un délai imparti.

En informatique industrielle, le chien de garde est souvent réalisé par un dispositif électronique, en général une bascule monostable. Il repose sur le principe que chaque étape du traitement doit s'exécuter en un temps maximal. A chaque étape, le système arme une temporisation avant son exécution. Si la bascule retourne à son état stable avant que la tâche ne soit achevée, le chien de garde se déclenche. Il met en œuvre un système de secours qui peut soit déclencher une alarme, soit faire redémarrer l'automate, soit mettre en marche un système redondant... Les chiens de garde sont souvent intégrés aux microcontrôleurs et aux cartes mères dédiées au temps réel.

Quand il est réalisé par logiciel, il s'agit en général d'un compteur qui est régulièrement remis à zéro. Si le compteur dépasse une valeur donnée (timeout) alors on procède à un reset (redémarrage) du système. Le chien de garde consiste souvent en un registre qui est mis à jour via une interruption régulière. Il peut également consister en une routine d'interruption qui doit effectuer certaines tâches de maintenance avant de redonner la main au programme principal. Si une routine entre dans une boucle infinie, le compteur du chien de garde ne sera plus remis à zéro et un reset est ordonné. Le chien de garde permet aussi d'effectuer un redémarrage si aucune instruction n'est prévue à cet effet. Il suffit alors d'écrire une valeur dépassant la capacité du compteur directement dans le registre : le chien de garde lancera le reset.

2 Configuration

Configuration du chien de garde (watchdog) :

  • Editer le fichier /etc/rc.conf et modifier la ligne suivant :
Configuration File /etc/rc.conf
watchdogd_flags=NO # for normal use: ""

par

watchdogd_flags="" # for normal use: ""

  • Rebooter, un processus watchdogd doit être présent, consulter les paramètres :
Command sysctl
sysctl -a 

  • Modifiez les paramètres du sysctl :
Configuration File /etc/sysctl.conf
kern.watchdog.period=30
kern.watchdog.auto=1