Supervisor ist ein Client / Server-System, das es seinen Benutzern, eine Reihe von Prozessen auf Unix-ähnlichen Betriebssystemen zu steuern. Es wurde durch die folgende inspiriert:
- Es ist oft unbequem zu müssen "rc.d" Skripte für jeden einzelnen Prozessinstanz zu schreiben. rc.d-Skripten sind eine gute kleinsten gemeinsamen Nenner Form von Prozess Initialisierung / Autostart / Geschäftsführung, aber schmerzhaft, zu schreiben und zu warten sein. Darüber hinaus können rc.d-Skripten nicht automatisch neu gestartet eines abgestürzten Prozess und viele Programme sich nicht richtig starten auf einem Absturz. Supervisord startet Prozesse als Teilprozesse und kann so konfiguriert werden, um auf eine Crash automatisch neu starten. Es kann auch automatisch konfiguriert, um Prozesse aus eigener Aufruf starten.
- Es ist oft schwierig, genaue Auf- / Ab-Status auf Prozesse auf UNIX zu bekommen. Pidfile liegen oft. Supervisord startet Prozesse Teilprozesse, weiß daher immer die wahre Auf- / Ab-Status seiner Kinder und bequem für diese Daten abgefragt werden.
- Benutzer, die Prozesszustand zu steuern benötigen oft nur das zu tun. Sie wollen nicht oder brauchen ausgewachsenen Shell-Zugriff auf den Rechner, auf denen die Prozesse laufen. Supervisorctl ermöglicht eine sehr eingeschränkte Form der Zugriff auf die Maschine, im wesentlichen so dass Anwender Prozessstatus und Steuer supervisord gesteuerte Teilprozesse durch Emission von "Stop" zu sehen, "Start" und "Neustart" Befehle von einem einfachen Shell-oder Web-UI.
- Die Benutzer müssen häufig Prozesse auf viele Maschinen steuern. Betreuer bietet eine einfache, sichere und einheitlichen Mechanismus für die interaktive und automatische Steuerung von Prozessen auf Gruppen von Maschinen.
- Prozesse, die auf hören "low" TCP-Ports müssen häufig gestartet und als Root-Benutzer (ein UNIX misfeature) neu gestartet werden. Es ist in der Regel der Fall, dass es völlig in Ordnung, damit "normale" Menschen zu stoppen oder einen solchen Prozess neu zu starten, sondern ihnen mit Shell-Zugang ist oft unpraktisch, und sie mit Root-Zugriff oder sudo Zugang ist oft unmöglich. Es ist auch (zu Recht) schwierig, ihnen zu erklären, warum dieses Problem besteht. Wenn supervisord als root gestartet wird, ist es möglich, zu ermöglichen "normalen" Benutzern, solche Prozesse, ohne die Komplexität des Problems zu erklären steuern.
- Prozesse müssen oft gestartet und gestoppt werden, in Gruppen, manchmal sogar in einem "Prioritätsreihenfolge". Es ist oft schwierig, die Leute wie Sie dies tun zu erklären. Supervisor können Sie Prioritäten von Prozessen zuordnen und ermöglicht dem Benutzer, Befehle über die supervisorctl Client wie "Start all" emittieren, und "alles neu", die sie in dem vorher zugewiesenen Prioritätsfolge beginnt. Zusätzlich können Prozesse in "Prozessgruppen" zusammengefasst werden und eine Reihe von logisch zusammenhängenden Prozesse gestoppt und gestartet als unit.otification System hinzugefügt.
Was ist neu in diese Version:
- Das Verhalten des Programms Option Benutzer hat sich geändert. In allen anderen Varianten, wenn supervisord fehlgeschlagen, um dem Benutzer zu wechseln, wird eine Warnung würde zur Stderr Protokoll gesendet werden, aber der untergeordnete Prozess immer noch hervorgebracht werden. Das bedeutet, dass ein Fehler in der Konfigurationsdatei kann in einem Kindprozess unbeabsichtigt als root hervorgebracht führen. Nun wird supervisord das Kind nicht erzeugen, es sei denn, es war in der Lage, erfolgreich an den Benutzer zu wechseln. Dank Igor Partola dieses Problem gemeldet hat.
- Wenn eine in der Konfigurationsdatei angegebene Benutzer ist nicht auf dem System vorhanden ist, wird supervisord nun einen Fehler zu drucken und sich weigern zu starten.
- Rückgängig gemacht: eine Änderung der Anmeldung 3.0b1, die dazu bestimmt war, dass mehrere Prozesse auf dieselbe Datei mit dem rotierenden Protokollhandler loggen eingeführt. Die Implementierung verursacht supervisord während reload abstürzen und Dateihandles auslaufen. Da Protokollrotationsoptionen werden auf einer Basis pro Anwendung gegeben, unmöglich Konfigurationen konnte (widersprüchliche Dreh Optionen für die gleiche Datei) erstellt werden. Angesichts dieser und supervisord jetzt hat Syslog-Unterstützung, wurde beschlossen, um diese Funktion zu entfernen. Eine Warnung wurde in der Dokumentation, dass zwei Prozesse möglicherweise nicht auf die gleiche Datei log aufgenommen.
- Ein Fehler wurde behoben, wo das Parsen command = konnte supervisord zum Absturz bringen, wenn shlex.split () fehlschlägt, wie eine schlechte zitiert. Patch von Scott Wilson.
- Es ist nun möglich, supervisorctl auf einer Maschine ohne supervisord.conf-Datei, indem Sie die Verbindungsinformationen in Befehlszeilenoptionen verwenden. Patch von Jens Rantil.
- Ein Fehler wurde behoben supervisord würde abstürzen, wenn der Syslog-Handler verwendet wurde und supervisord erhalten SIGUSR2 Fest (log öffnen Anfrage).
- Es wurde ein XML-RPC-Fehler behoben, durch den Aufruf supervisor.getProcessInfo () mit einem schlechten Ruf würde einen 500 Internal Server Error statt der Rückgabe eines BAD_NAME Fehler verursachen.
- Es wurde ein Favicon auf das Web-Interface. Patch von Caio Ariede.
- Es wurde ein Testfehler durch falsche Handhabung der Sommerzeit in den childutils Tests. Patch von Ildar Hizbulin.
- Feste eine Reihe von Pyflakes Warnungen für unbenutzte Variablen, die Einfuhr und toten Code. Patch von Philippe Ombredanne.
Was ist neu in der Version 3.0 Beta 1:
- Ein Fehler wurde behoben, wo das Parsen Umwelt = nicht überprüfen dass die Schlüssel / Wert-Paare wurden korrekt getrennt. Patch von Martijn Pieters.
- ein Fehler in der HTTP-Server-Code, der unnötige Verzögerungen beim Versenden von großen Reaktionen verursachen können, wurde behoben. Patch von Philip Zeyliger.
- Wenn supervisord startet als root, wenn die Option -c nicht angegeben wurde, wird eine Warnung nun auf der Konsole ausgegeben. Begründung: supervisord sieht in dem aktuellen Arbeitsverzeichnis für eine supervisord.conf Datei; jemand könnte den Benutzer root in die Ausgangs supervisord während in ein Verzeichnis, ein Schelm supervisord.conf hat cd'ed Trick.
- Eine Warnung wurde in der Dokumentation über die Auswirkungen auf die Sicherheit von Start supervisord ohne -c hinzugefügt.
- Fügen Sie einen boolean Programmoption stopasgroup; Standard ist falsch. Wenn wahr, wird das Flag Ursachen Supervisor, um die Stopp-Signal für den gesamten Prozess Gruppe senden. Dies ist nützlich für Programme wie Flachmann im Debug-Modus, die nicht Stoppsignale, um ihre Kinder zu verbreiten haben, so dass sie zu Waisen.
- Python 2.3 wird nicht mehr unterstützt. Die letzte Version, die Python 2.3 unterstützt wird, ist Betreuer 3.0a12.
- entfernt den unbenutzten & quot; supervisor_rpc & quot; Einstiegspunkt aus setup.py.
- Ein Fehler in der rotierenden Protokollhandler, der dazu führen würde, zu unerwarteten Ergebnissen führen, wenn zwei Prozesse wurden eingestellt, um auf dieselbe Datei zu protokollieren. Patch von Pfingst Morriss.
- Ein Fehler in der Konfigurationsdatei neu laden wo jeder neu laden könnte ein Speicherleck, da eine Liste der Warnmeldungen würde angehängt werden, aber nie gelöscht wurde behoben. Patch von Philip Zeyliger.
- Es wurde eine neue Syslog-Protokollhandler. Dank Denis Bilenko, Nathan L. Smith und Jason R. Coombs, die jeweils dazu beigetragen, den Patch.
- Stellen Sie alle Änderungshistorie in einer einzigen Datei (CHANGES.txt).
Was ist neu in der Version 3.0 Alpha 12:
- freigegeben, eine gebrochene 3.0a11 Paket zu ersetzen, wo nicht -Python Dateien wurden nicht in dem Paket enthalten.
Was ist neu in der Version 3.0 Alpha 10:
- Fest das Stylesheet des Web-Interface, so dass die Fußzeile Linie wird ein langer Prozess-Liste nicht überlappen. Dank Derek DeVries für den Patch.
- Allow RPC-Schnittstelle Plugins, um neue Ereignisse Typen registrieren.
- Bugfix für FCGI Sockets nicht immer aufgeräumt, wenn der Befehl reload aus supervisorctl ausgestellt. Auch hat das Standardverhalten für FCGI Steckdosen geändert. Sie sind neu geschlossen, wenn die Anzahl ofrunning Prozesse in der Gruppe Null erreicht. Bisher wurden die Steckdosen offen gehalten, wenn ein Konzernebene Stopp-Befehl ausgegeben wurde.
- Bessere Fehlermeldung, wenn HTTP-Server kann nicht rückwärts lösen einen Hostnamen zu einer IP-Adresse. Vorherige Verhalten: zeigen einen socket-Fehler. Aktuelle Verhalten:. Ausspucken einen Vorschlag an stdout
- Umgebungsvariablen über Umwelt gesetzt = Wert innerhalb
- [supervisord] Abschnitt hatte keine Wirkung. Dank Wyatt Baldwin für einen Patch.
- Fix bug in dem Stoppvorgang würde Prozessausgabe, die nach der Stoppanforderung ausgegeben wurde verloren passiert verursachen. Siehe https://github.com/Supervisor/supervisor/issues/11.
- Moved 2.X Change-Log-Einträge in HISTORY.txt.
- Converted CHANGES.txt und README.txt in die richtige ReStructuredText und sie in der long_description in setup.py.
- Es wurde ein tox.ini dem Paket (über tox im Paket dir laufen). Tests Supervisor auf mehreren Python-Versionen.
Anforderungen :
- Python
Kommentare nicht gefunden