GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser le chien de garde des logiciels Linux ?

Et si vous utilisiez cron ? Configurez une petite tâche cron qui s'exécute toutes les minutes. Vérifiez si votre application est opérationnelle (en utilisant ps) et si ce n'est pas le cas, redémarrez-la.

Créez un petit script comme celui-ci :

#!/bin/bash
if [ ! "$(pidof myapp)" ] 
then
  /path/to/myapp &
fi

Vous testez si "myapp" est dans la liste des processus. "!" inverse le test. S'il n'y est pas, il exécute "myapp". "&" est juste pour qu'il démarre en arrière-plan.

Ajoutez ceci à cron. En fonction de votre système et de vos préférences, il existe plusieurs façons de procéder. Le plus classique consiste à utiliser crontab. Il y a beaucoup de documentation sur la façon de spécifier votre ligne crontab, mais vous voulez probablement quelque chose comme ceci :

* * * * * /path/to/the/script.sh > /dev/null

Cela exécutera votre test chaque minute de chaque heure de chaque… Vous voyez l'idée.


Utilisez /etc/inittab vous pouvez l'utiliser pour démarrer dans les niveaux d'exécution spécifiques et s'il est tué, il sera redémarré automatiquement

n:2345:respawn:/path/to/app

Cela le fera réapparaître dans les niveaux d'exécution 2345, vous n'avez probablement besoin que des niveaux 3 et 5, mais cela fonctionnera bien et est intégré à Linux.


La plupart des Unix/Linux init les programmes géreront les démons pour vous et les redémarreront. Envisagez de placer votre service dans /etc/inittab . Ou vous utilisez peut-être Upstart ou systemd .

Tous ces programmes s'exécutent en tant que PID 1 et c'est leur travail de surveiller et de redémarrer les processus système.

D'après votre balise Busybox, je suppose que vous utilisez un système intégré. Sur ceux-ci, les scripts d'initialisation de style System V avec tous leurs scripts shell sont vraiment exagérés. Vous devriez probablement extraire tout cela et le remplacer par des entrées dans /etc/inittab ou des travaux upstart ou systemd.


Le chien de garde du logiciel Linux redémarrera la machine, et pas seulement votre processus.

Eh bien, ce n'est tout simplement pas vrai, il est très possible de redémarrer un ou plusieurs processus après que le chien de garde signale que le système est suspendu - vous pouvez même ABANDONNER le redémarrage ou effectuer un redémarrage SOFT, on peut configurer "test" et " repair"-scripts/binaires qui font ce que vous voulez qu'ils fassent. La version busybox de watchdog est réduite à un niveau presque inutilisable ... je suppose que le monde ne saura jamais pourquoi les développeurs de busybox ont décidé d'abandonner les fonctionnalités principales - pour l'instant, il serait préférable d'éviter du tout busybox -> les améliorations de vitesse sont presque inexistantes, la diminution de la taille ne compense pas l'énorme perte de fonctionnalité. /bin/bash est plutôt petit - recompilez tout avec le drapeau "-Os" si la taille compte et que vous êtes prêt à partir - un chien de garde prêt à l'emploi qui permet à peu près tout ce que l'on peut souhaiter.

Oh et S'IL VOUS PLAÎT, ne créez PAS votre propre chien de garde - cela vous laissera très probablement avec des erreurs non gérées et vous rendra la vie mauvaise un jour.


Linux
  1. Comment utiliser BusyBox sous Linux

  2. Comment j'utilise cron sous Linux

  3. Comment utiliser Décompresser sous Linux

  4. Comment utiliser la commande Su sous Linux

  5. Comment utiliser Google Drive sous Linux

Comment utiliser l'écran Linux

Comment utiliser du Command sous Linux

Comment utiliser le terminal Linux dans Android

Comment utiliser AppImage sous Linux [Guide complet]

Comment utiliser la commande sysctl sous Linux

Comment utiliser la commande d'arrêt de Linux