Superviseur est un système / client-serveur qui permet à ses utilisateurs de contrôler un certain nombre de processus sur les systèmes d'exploitation de type UNIX. Il a été inspiré par le texte suivant:
- Il est souvent gênant de devoir écrire des scripts "de rc.d» pour chaque instance de processus unique. scripts rc.d sont une excellente forme au plus petit commun dénominateur de l'initialisation du processus / autostart / gestion, mais ils peuvent être douloureux à écrire et à maintenir. En outre, les scripts rc.d peuvent ne redémarre pas automatiquement un processus écrasé et de nombreux programmes ne se redémarre pas correctement sur un accident. Supervisord processus commence que ses sous-processus, et peut être configuré pour redémarrer automatiquement sur une collision. Il peut également être automatiquement configuré pour démarrer les processus de sa propre invocation.
- Il est souvent difficile d'obtenir exactes haut / bas statut sur les processus sous UNIX. .pid Se trouvent souvent. Supervisord commence processus que sous-processus, il sait toujours le vrai jusqu'à état / bas de ses enfants et peut être interrogé idéalement pour ces données.
- Les utilisateurs qui ont besoin de contrôler l'état du processus ont souvent besoin que de le faire. Ils ne veulent pas ou ne doivent avoir accès à part entière shell pour la machine sur laquelle les processus sont en cours d'exécution. Supervisorctl permet une forme très limitée de l'accès à la machine, essentiellement permettant aux utilisateurs de visualiser l'état des processus et de contrôle des sous-processus de supervisord contrôlée en émettant "stop", "start" et "redémarrage" des commandes à partir d'un simple shell ou interface Web.
- Les utilisateurs ont souvent besoin de contrôler les processus sur de nombreuses machines. Superviseur fournit un mécanisme simple, sûr et uniforme pour interactive et automatiquement le contrôle des processus sur des groupes de machines.
- Processus qui écoutent sur les ports TCP "faibles" ont souvent besoin d'être commencé et renouvelées que l'utilisateur root (un misfeature UNIX). Ce est généralement le cas que ce est parfaitement bien pour permettre aux gens «normaux» pour arrêter ou redémarrer un tel processus, mais en leur donnant accès shell est souvent peu pratique, et en leur fournissant un accès root ou l'accès sudo est souvent impossible. Ce est aussi (à juste titre) difficile de leur expliquer pourquoi ce problème existe. Si supervisord est démarré en tant que root, il est possible pour permettre aux utilisateurs «normaux» pour contrôler ces processus sans avoir à expliquer les subtilités du problème pour eux.
- Les processus doivent souvent être démarré et arrêté en groupes, parfois même dans un «ordre de priorité». Il est souvent difficile d'expliquer aux gens comment faire cela. Superviseur vous permet d'affecter des priorités aux processus, et permet à l'utilisateur d'émettre des commandes via le client supervisorctl comme "tout recommencer", et "redémarrer tous», qui les met dans l'ordre de priorité pré-attribué. En outre, les processus peuvent être regroupés en «groupes de processus» et un ensemble de processus liés logiquement peuvent être arrêtés et a commencé comme a été ajouté un système de unit.otification.
Ce qui est nouveau dans cette version:
- Le comportement de l'utilisateur de l'option de programme a changé. Dans toutes les versions précédentes, si supervisord n'a pas réussi à passer à l'utilisateur, un avertissement serait envoyé au journal stderr mais le processus de l'enfant serait toujours engendré. Cela signifie qu'une erreur dans le fichier de configuration pourrait entraîner un processus enfant étant involontairement donné naissance en tant que root. Maintenant, supervisord ne pondra pas l'enfant sauf se il était en mesure de passer avec succès à l'utilisateur. Merci à Igor Partola avoir signalé ce problème.
- Si un utilisateur spécifié dans le fichier de configuration ne existe pas sur le système, supervisord va maintenant imprimer une erreur et refuse de se lancer.
- revenue un changement à l'exploitation forestière introduite en 3.0b1 qui visait à permettre à plusieurs processus de se connecter sur le même fichier avec le gestionnaire de la rotation du journal. La mise en œuvre a provoqué supervisord se écraser lors du rechargement et à fuir les descripteurs de fichiers. En outre, puisque les options de rotation de journal sont donnés sur une base par programme, configurations impossibles pourraient être créés (options de rotation contradictoires pour le même fichier). Compte tenu de ceci et cela supervisord a maintenant en charge de Syslog, il a été décidé de supprimer cette fonctionnalité. Un avertissement a été ajouté à la documentation que deux processus ne peuvent pas se connecter à un même fichier.
- Correction d'un bug où commande d'analyse = pourrait causer supervisord planter si shlex.split () échoue, comme une mauvaise citant. Patch par Scott Wilson.
- Il est maintenant possible d'utiliser supervisorctl sur une machine avec aucun fichier supervisord.conf en fournissant les informations de connexion dans les options de ligne de commande. Patch par Jens Rantil.
- Correction d'un bug où supervisord plantait si le gestionnaire syslog a été utilisé et supervisord reçu SIGUSR2 (log rouvrir demande).
- Correction d'un bug où XML-RPC appelant supervisor.getProcessInfo () avec un mauvais nom provoquerait une 500 Internal Server Error plutôt que le retour d'un défaut de BAD_NAME.
- Ajout d'un favicon à l'interface Web. Patch par Caio Ariede.
- Correction d'un échec de l'essai en raison d'une manipulation incorrecte du temps de l'heure d'été dans les tests de childutils. Patch par Ildar Hizbulin.
- Correction d'un certain nombre d'avertissements pour pyflakes variables inutilisées, les importations et code mort. Patch par Philippe Ombredanne.
Quoi de neuf dans la version 3.0 Beta 1:
- Correction d'un bug où l'analyse de l'environnement = n'a pas vérifié que les paires clé / valeur ont été correctement séparés. Patch par Martijn Pieters.
- Correction d'un bug dans le code du serveur HTTP qui pourrait entraîner des retards inutiles lors de l'envoi des réponses grandes. Patch par Philip Zeyliger.
- Lorsque supervisord démarre en tant que root, si le drapeau -c ne était pas prévue, un avertissement est émis maintenant à la console. Justification: supervisord regarde dans le répertoire de travail courant pour un fichier de supervisord.conf; quelqu'un pourrait tromper l'utilisateur root dans le démarrage supervisord tout cd'ed dans un répertoire qui a une supervisord.conf voyous.
- Un avertissement a été ajouté à la documentation sur les implications de sécurité de départ supervisord sans l'option -c.
- Ajouter un booléen option de programme stopasgroup, par défaut à false. Lorsque vrai, le superviseur des causes drapeau pour envoyer le signal d'arrêt à l'ensemble du groupe de processus. Ce est utile pour les programmes, tels que Flacon en mode de débogage, qui ne se propagent des signaux d'arrêt à leurs enfants, les laissant orphelins.
- Python 2.3 ne est plus supporté. La dernière version qui a soutenu Python 2.3 est superviseur 3.0a12.
- Suppression de l'utilisé & quot; supervisor_rpc & quot; point à partir setup.py d'entrée.
- Correction d'un bug dans le gestionnaire de la rotation du journal qui pourrait entraîner des résultats inattendus lorsque deux processus ont été mis à se connecter sur le même fichier. Patch par Whit Morriss.
- Correction d'un bug dans le fichier de config rechargement où chaque rechargement pourrait fuite de mémoire, car la liste des messages d'avertissement serait jointe mais jamais effacé. Patch par Philip Zeyliger.
- Ajout d'un nouveau gestionnaire de journal Syslog. Merci à Denis Bilenko, Nathan L. Smith, et Jason R. Coombs, qui ont chacun contribué à le patch.
- Mettez toute l'histoire du changement dans un seul fichier (CHANGES.txt).
Ce qui est nouveau dans la version 3.0 Alpha 12:
- Sortie pour remplacer un paquet cassé 3.0a11 où non -python fichiers ne ont pas été inclus dans le forfait.
Ce qui est nouveau dans la version 3.0 Alpha 10:
- fixe la feuille de style de l'interface Web de sorte que le pied de page ligne ne sera pas chevaucher une liste de processus long. Merci à Derek DeVries pour le patch.
- Laissez plugins interface RPC pour enregistrer de nouveaux types d'événements.
- Correction d'un bug pour FCGI sockets ne pas se nettoyer quand la commande reload est émise à partir supervisorctl. En outre, le comportement par défaut a changé pour les sockets FCGI. Ils sont nouveaux fermé lorsque le nombre ofrunning processus dans un groupe atteint zéro. Auparavant, les prises ont été maintenus ouverts sauf si une commande d'arrêt au niveau du groupe a été publié.
- message d'erreur Mieux lorsque le serveur HTTP ne peut pas renverser-résoudre un nom d'hôte à une adresse IP. Comportement précédent: montrer une erreur de socket. Comportement actuel:. Cracher une suggestion à stdout
- variables d'environnement définies par l'intermédiaire de l'environnement = valeur dans
- [supervisord] chapitre n'a eu aucun effet. Merci à Wyatt Baldwin pour un patch.
- Correction d'un bug où les processus d'arrêt entraînerait processus sortie qui se est passé après la demande d'arrêt a été délivré à perdre. Voir https://github.com/Supervisor/supervisor/issues/11.
- Changement 2.X Proposée entrées de journal dans HISTORY.txt.
- Ancienne CHANGES.txt et README.txt dans ReStructuredText appropriée et les a inclus dans le long_description dans setup.py.
- Ajout d'un tox.ini au paquet (de fonctionner via tox dans le package dir). Tests superviseur sur plusieurs versions de Python.
Exigences :
- Python
Commentaires non trouvées