J'ai utilisé Daemontools pour fournir un moyen simple et fiable de superviser les services Unix sur mes serveurs. Cela fonctionne bien, mais cela nécessite une façon de penser différente ( The DJB Way ) et certaines plaintes courantes sont:
- Horodatages basés sur TAI64N
- Ne stocke pas les scripts sous /etc/init.d (ou (/usr/local)/etc/rc.d)
- Ne fonctionne pas toujours avec des scripts comme apachectl. Certains scripts doivent être réécrits.
Je me souviens que des démons similaires "superviseur / chien de garde" étaient en préparation il y a environ deux ans, mais certains étaient encore un peu rudes sur les bords.
Si vous êtes passé de Daemontools à autre chose, qu'avez-vous choisi et est-ce que cela a bien fonctionné pour vous? RedHat ou Ubuntu sont-ils fournis avec des utilitaires de supervision de processus par défaut?
la source
runsv
commande derunit
prend en charge les contrôles personnalisés, afin qu'un redémarrage puisse être implémenté en termes de binaires de contrôle natif d'un démon.Eh bien, il y a runit . Je ne peux pas vous dire quelles sont ses différences et similitudes avec daemontools, mais à en juger par le site Web de Berstein-esque, je dirais qu'il y a une influence certaine de Bernstein.
la source
Fedora semble sur le point de passer à systemd: http://0pointer.de/blog/projects/systemd.html
la source
Comme alternative au déjà mentionné
daemonize
etdaemontools
, il y a la commande daemon du paquet libslack.daemon
est assez configurable et se soucie de toutes les tâches fastidieuses du démon telles que le redémarrage automatique, la journalisation ou la gestion des fichiers pid.la source
Il y a supervord
la source
Il existe également l' outil démon de libslack qui est écrit en C et disponible pour diverses plates-formes (Unix).
Il est assez configurable et prend en charge toutes les tâches fastidieuses du démon telles que le redémarrage automatique, la journalisation ou la gestion du fichier pid.
la source
Ubuntu est livré avec Upstart - je ne sais pas grand-chose mais je sais qu'il a des capacités de "superviseur". Launchd d'Apple est une autre option (cet article de Wikipédia a une belle section "voir aussi" qui répertorie un tas d'autres aussi, y compris Upstart et RunIt).
Tous ont leurs bons points et leur propre marque spéciale de übersuck - Chaque fois que quelqu'un me pose des questions sur les programmes "superviseur de processus" / "chien de garde", je pose toujours la même question: pourquoi en avez-vous besoin?
la source
Il n'y a pas d'outils populaires / de consensus communautaire pour cela, car tous ceux qui s'engagent dans cette voie se rendent compte que c'est une impasse. Si vos processus de longue durée échouent trop souvent pour qu'une surveillance simple soit suffisante, arrêtez de les utiliser et déplacez votre code dans quelque chose qui sera davantage piloté par les événements.
modifier: comme le souligne Chris ci-dessous, vous êtes parfois complètement coincé, auquel cas un travail cron * / 1 qui recherche le processus / fichier pid, exécute un démarrage / redémarrage s'il est manquant et envoie les résultats dans un e-mail au responsable développeur / chef de produit est votre position de repli.
la source