1. Einleitung Supervisor ist ein in Python entwickeltes allgemeines Prozessmanagementprogramm. Es kann einen gewöhnlichen Befehlszeilenprozess in einen Hintergrund-Daemon umwandeln, den Prozessstatus überwachen und bei einer abnormalen Beendigung automatisch neu starten. Derzeit kann Supervisor auf den meisten Unix-Systemen ausgeführt werden, die Ausführung auf Windows-Systemen wird jedoch nicht unterstützt. Supervisor erfordert Python 2.4 oder höher, unterstützt jedoch keine Python 3-Versionen. 2. Integriertes Webverwaltungsprogramm Supervisor besteht aus vier Komponenten: 1. Aufsichtsperson 2. Supervisorctl 3. Webserver Dies ist der Webclient von supervisord. Benutzer können auf der Webseite ähnliche Funktionen wie supervisorctl ausführen. 4. XML-RPC-Schnittstelle Dies ist eine Schnittstelle, die für die Integration von Drittanbietern reserviert ist. Ihr Dienst kann diese XML-RPC-Schnittstellen remote aufrufen, um die von Supervisord verwalteten Unterprozesse zu steuern. Der oben genannte Webserver wird tatsächlich über diese XML-RPC-Schnittstelle implementiert. 3. Installation Nachfolgend sind drei Methoden aufgeführt. Sie können eine beliebige auswählen. 1. Installation echo "supervisor-3.3.4-Installation (ja, bitte 1 eingeben; nein, andere eingeben):" SV lesen wenn [ "$SV" = "1" ]; dann cd $Basispfad entpacken Sie $basepath/supervisor-3.3.4.zip CD-Supervisor-3.3.4 python setup.py installieren echo "Supervisor-3.3.4-Installation abgeschlossen" anders echo "Sie haben sich entschieden, Supervisor-3.3.4 nicht zu installieren" fi 2. Installation des Quellcodes wget https://pypi.python.org/packages/7b/17/88adf8cb25f80e2bc0d18e094fcd7ab300632ea00b601cbbbb84c2419eae/supervisor-3.3.4.tar.gz tar -zxvf supervisor-3.3.4.tar.gz CD-Supervisor-3.3.4 python setup.py install #Die lokale Python-Version ist python2.7 3. Yum-Installation yum Installations-Supervisor 4. Konfigurationsdatei Wenn nach der Installation keine Konfigurationsdatei /etc/supervisord.conf vorhanden ist, generieren Sie sie mit dem Befehl: echo_supervisord_conf > /etc/supervisord.conf 5. Inbetriebnahme supervisord -c /etc/supervisord/supervisord.conf echo "supervisor-3.3.4 erfolgreich gestartet" 6. Start einrichten systemctl aktiviere supervisord.service 7. Überprüfen Sie, ob Supervisord läuft ps aux | grep supervisord 8. Supervisorctl-Verwaltungsbefehl supervisorctl status #status supervisorctl stop nginx #nginx herunterfahren supervisorctl start nginx #Starten Sie nginx supervisorctl restart nginx #Nginx neu starten supervisorctl reload #Alles neu starten supervisorctl update #Konfiguration aktualisieren Dieser Befehl kann einzeln oder in Kombination verwendet werden. 9. Beschreibung der Konfigurationsdatei [unix_http_server] file=/tmp/supervisor.sock ;UNIX-Socket-Datei, die supervisorctl verwenden wird; chmod=0700 ;Socket-Dateimodus, Standard ist 0700 ;chown=nobody:nogroup ;Besitzer der Socket-Datei, Format: uid:gid ;[inet_http_server] ;HTTP-Server, der eine Web-Verwaltungsschnittstelle bereitstellt;port=127.0.0.1:9001 ;IP und Port des Web-Verwaltungs-Backends. Wenn es für das öffentliche Netzwerk geöffnet ist, müssen Sie auf die Sicherheit achten;username=user ;Benutzername für die Anmeldung beim Verwaltungs-Backend;password=123 ;Passwort für die Anmeldung beim Verwaltungs-Backend [supervisord] logfile=/tmp/supervisord.log; Protokolldatei, der Standard ist $CWD/supervisord.log logfile_maxbytes=50MB; Größe der Protokolldatei, bei Überschreitung wird sie rotiert, Standard ist 50MB, wenn auf 0 gesetzt, bedeutet das keine Größenbeschränkunglogfile_backups=10; die Standardanzahl der Protokolldateisicherungen ist 10, auf 0 gesetzt bedeutet keine Sicherungloglevel=info; Protokollebene, Standard ist Info, andere: debug,war,trace pidfile=/tmp/supervisord.pid ;pid-Datei nodaemon=false ;ob im Vordergrund gestartet werden soll, der Standardwert ist false, d. h. im Daemon-Modus starten minfds=1024 ;der Mindestwert des Dateideskriptors, der geöffnet werden kann, der Standardwert ist 1024 minprocs=200; Die Mindestanzahl der Prozesse, die geöffnet werden können, der Standardwert ist 200 [Supervisorctl] serverurl=unix:///tmp/supervisor.sock ; Verbindung zu supervisord über UNIX-Socket herstellen, der Pfad stimmt mit der Datei im unix_http_server-Teil überein; serverurl=http://127.0.0.1:9001 ; Verbindung zu supervisord über HTTP herstellen ; [program:xx] ist der Konfigurationsparameter des verwalteten Prozesses, xx ist der Name des Prozesses [program:xx] command=/opt/apache-tomcat-8.0.35/bin/catalina.sh run; Programmstartbefehl autostart=true; Automatisch starten, wenn supervisord startet startsecs=10; Wenn nach 10 Sekunden Start kein abnormaler Abschluss erfolgt, bedeutet dies, dass der Prozess normal gestartet wurde. Der Standardwert ist 1 Sekunde autorestart=true; Automatischer Neustart nach Beendigung des Programms. Optionale Werte: [unexpected, true, false], der Standardwert ist unerwartet, was bedeutet, dass der Prozess erst neu gestartet wird, wenn er versehentlich beendet wurde startretries=3; Die Anzahl der automatischen Wiederholungsversuche bei fehlgeschlagenem Start, der Standardwert ist 3 user=tomcat; Welcher Benutzer wird zum Starten des Prozesses verwendet, der Standard ist root Priorität = 999; Prozessstartpriorität, Standard ist 999, Prozesse mit kleineren Werten werden zuerst gestartet. Umleitung_stderr = true; Leiten Sie stderr nach stdout um, Standard ist false stdout_logfile_maxbytes=20 MB; Größe der stdout-Protokolldatei, Standard 50 MB stdout_logfile_backups = 20; Anzahl der Backups der stdout-Logdateien, Standard ist 10 ; stdout-Protokolldatei. Bitte beachten Sie, dass der normale Start nicht möglich ist, wenn das angegebene Verzeichnis nicht existiert. Sie müssen das Verzeichnis daher manuell erstellen (Supervisord erstellt die Protokolldatei automatisch). stdout_logfile=/opt/apache-tomcat-8.0.35/logs/catalina.out stopasgroup=false; Standard ist „false“, wenn der Prozess beendet wird, ob ein Stoppsignal an die Prozessgruppe gesendet werden soll, einschließlich der untergeordneten Prozesse killasgroup=false; Standard ist „false“, sendet ein Kill-Signal an die Prozessgruppe, einschließlich der untergeordneten Prozesse; enthält andere Konfigurationsdateien [include] files =/etc/supervisord.d/*.ini ; Sie können eine oder mehrere Konfigurationsdateien mit der Endung .ini angeben 10. Beispiel einer INI-Konfigurationsdatei [Programm:MysqlToRedis] Verzeichnis = /data/py/SmartServerModel/SmartServerModel/ModelManagerServer/ Befehl = python3 -u mysql2redis_robot_config.py cs autostart = true autorestart=true Startsekunden = 5 Benutzer = root redirect_stderr = wahr stdout_logfile = /data/logs/supervisord/mysqltoredis.log [Programm:SmartBinLog] Befehl = /data/go/src/SmartBinLog/SmartBinLog autostart = true autorestart=true Startsekunden = 5 Benutzer = root redirect_stderr = wahr stdout_logfile = /data/logs/supervisord/smartbinlog.log [Gruppe:nlp] programs=MysqlToRedis,SmartBinLog ;server,progname2 bezieht sich jeweils auf 'x' in [program:x]-Definitionen Priorität=999; die relative Startpriorität (Standard 999) 11. Öffnen Sie das Webseitenverwaltungsprogramm Entfernen Sie alle Kommentarzeilen in der Konfigurationsdatei conf und ändern Sie dann Port, Benutzername und Passwort. [inet_http_server] ;HTTP-Server, der die Web-Verwaltungsschnittstelle bereitstelltport=127.0.0.1:9001 ;IP und Port des Web-Verwaltungs-Backends. Wenn es für das öffentliche Netzwerk geöffnet ist, achten Sie bitte auf die Sicherheitusername=user ;Benutzername für die Anmeldung am Verwaltungs-Backendpassword=123 ;Passwort für die Anmeldung am Verwaltungs-Backend 12. Lösen Sie das Problem „unix:///tmp/supervisor.sock keine solche Datei“ Manchmal stoßen wir auf dieses Problem:
①. Stoppen Sie den vorhandenen Supervisorctl-Prozess ②. Ändern Sie die Konfigurationsdatei „/etc/supervisord.conf“ und ändern Sie tmp in etc. Die Dateien im Verzeichnis /tmp werden vom Betriebssystem regelmäßig wiederverwendet. Sie müssen daher Folgendes ändern: ③. Starten Sie supervisord mit der Konfigurationsdatei, die Sie gerade geändert haben, und alles wird wieder normal sein. Das könnte Sie auch interessieren:
|
<<: Implementierung eines einfachen Timers basierend auf der Vue-Methode
In diesem Artikel wird der spezifische Code von j...
⑴ Der Inhalt bestimmt die Form. Reichern Sie zuers...
In diesem Artikel erfahren Sie den spezifischen J...
In diesem Artikel wird der spezifische Code von V...
Inhaltsverzeichnis Einzelner Knoten Diff Einzelel...
Die Verwendung von Schriftarten im Web ist sowohl ...
Inhaltsverzeichnis Vorwort Berechnete Eigenschaft...
Auf Unix-ähnlichen Systemen wissen Sie möglicherw...
Standardmäßig werden Prozesse im Container mit Ro...
Dieser Artikel stellt hauptsächlich den Beispielc...
Öffnen Sie den Editor für geplante Aufgaben. Cent...
In diesem Artikel werden hauptsächlich mehrere Pl...
1. Hintergrund Bei unserer täglichen Website-Wart...
Es ist eine sehr häufige Anforderung, die horizon...
Ähnliche Strukturen: Code kopieren Der Code laute...