Logiciel de surveillance Linux

Je suis en train d'écrire un moniteur système pour Linux et que vous souhaitez inclure certains de surveillance de la fonctionnalité. Dans le noyau, vous pouvez configurer le chien de garde de continuer même si /dev/chien de garde est fermé. En d'autres termes, si mon démon sort normalement et se ferme /dev/watchdog, le système serait encore re-boot 59 secondes plus tard. Qui peut ou peut ne pas être souhaitable comportement de l'utilisateur.

J'ai besoin de faire mon démon conscient de ce paramètre, car il va influencer la façon dont je gère SIGINT. Si le réglage est sur, mon démon peut (de préférence) démarrer un arrêt à la sortie ou (au moins) d'avertir l'utilisateur que le système va redémarrer peu de temps.

Personne ne sait d'une méthode pour obtenir ce paramètre à partir de l'espace utilisateur? Je ne vois rien dans sysconf() pour obtenir la valeur. De même, j'ai besoin d'être en mesure de dire si le logiciel de surveillance est activé pour commencer.

Edit:

Linux fournit un très simple chien de garde de l'interface. Un processus peut ouvrir /dev/chien de garde , une fois que l'appareil est ouvert, le noyau commencera à 60 secondes compte à rebours jusqu'à redémarrer, à moins que des données sont écrites dans ce fichier, auquel cas l'horloge re-ensembles.

En fonction de la façon dont le noyau est configuré, la fermeture de ce fichier peut ou ne peut pas arrêter le compte à rebours. À partir de la documentation:

Le chien de garde peut être arrêté sans
provoquant un redémarrage si l'appareil
/dev/chien de garde est fermé correctement,
à moins que votre noyau est compilé avec les
le CONFIG_WATCHDOG_NOWAYOUT option
activé.

J'ai besoin d'être en mesure de dire si CONFIG_WATCHDOG_NOWAYOUT a été définie à partir de l'intérieur d'un espace utilisateur démon, afin que je puisse gérer l'arrêt de ladite démon différemment. En d'autres termes, si un réglage est élevé, un simple:

# /etc/init.d/mydaemon stop

... serait de redémarrer le système en 59 secondes, parce que rien n'est écrit à /dev/chien de garde plus longtemps. Donc, si, de son haut, mon gestionnaire pour SIGINT besoins pour faire des choses (c'est à dire d'en avertir l'utilisateur à tout le moins).

Je ne peux pas trouver un moyen de l'obtention de ce paramètre à partir de l'espace utilisateur 🙁 Toute aide est appréciée.

source d'informationauteur Tim Post