Moniteur de processus simple mais prêt pour la production sous Linux / Unix [fermé]

8

Je recherche un moniteur de processus simple pour mon compte dans un VPS populaire. J'ai adoré Supervisor et Monit, mais ils semblent exagérés pour moi.

je veux quelquechose

  1. qui fonctionne comme un démon (donc mon compte VPS peut le démarrer au démarrage et aussi "démarrer" par cron au cas où le moniteur lui - même tomberait)
  2. qui surveille en générant des trucs comme sous-processus (comme Superviseur) ou en faisant une commande d' interrogation qui retourne vrai ou faux (comme une instruction BASH if)
  3. à la fois facile à utiliser (nécessite une configuration minimale) et stable en production (en quelque sorte, peu de logiciels semblent satisfaire les deux demandes)
  4. Convient dans un VPS géré - exécuté en mode utilisateur, utilisation minimale de la mémoire
Jesvin Jose
la source

Réponses:

2

Vous recherchez le programme daemontools . (Si c'est ce que vous entendiez par le moniteur "Superviseur", alors n'hésitez pas à ignorer le reste de ma réponse.)

daemontools est une collection d'outils pour gérer les services UNIX.

superviser surveille un service. Il démarre le service et redémarre le service s'il meurt. La configuration d'un nouveau service est simple: tous les besoins de supervision sont un répertoire avec un script d'exécution qui exécute le service.

multilog enregistre les messages d'erreur dans un ou plusieurs journaux. Il horodate éventuellement chaque ligne et, pour chaque journal, inclut ou exclut les lignes correspondant aux modèles spécifiés. Il fait pivoter automatiquement les journaux pour limiter la quantité d'espace disque utilisé. Si le disque se remplit, il s'arrête et réessaye, sans perdre aucune donnée.

C'est simple, flexible et très puissant. L'idée de base est que pour chaque service que vous souhaitez exécuter, daemontools lance un processus enfant (appelé supervise) qui lance ensuite votre service. supervise configure les variables d'environnement du service et uid / gid , puis conserve les normes d'entrée et de sortie standard du service ouvertes afin qu'il puisse envoyer des signaux. Le service n'a pas besoin de se démoniser et vous n'avez pas besoin de gérer les fichiers pid. Le service principal n'a pas besoin de root pour s'exécuter et vous pouvez placer les répertoires des services surveillés n'importe où.

Homme à tout faire5
la source
runitserait une alternative aux daemontools. C'est aussi très simple et bas niveau. Fondamentalement, tout ce dont vous avez besoin pour exécuter un proces est un fichier contenant une commande exec, par exemple exec sleep 300Ensuite, vous créez un lien symbolique à partir du répertoire contenant le script d'exécution /etc/service/nameet vous avez terminé.
Tombart
1

La réponse simple est que vous en avez déjà un - chaque système Unix en possède - init et / etc / inittab.

La tâche d'init consiste à générer les processus répertoriés dans inittab, à les surveiller et à les redémarrer s'ils se terminent.

Haqa
la source