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
Nachdem wir den transform Kurs abgeschlossen habe...
In diesem Artikelbeispiel wird der spezifische Ja...
1. HTML-Übersicht 1.HTML: Hypertext Markup Langua...
Code kopieren Der Code lautet wie folgt: <!DOC...
Dieser Artikel veranschaulicht anhand von Beispie...
In diesem Artikel wird hauptsächlich erläutert, w...
Inhaltsverzeichnis Vorwort Was ist Datenbindung? ...
Hinweis: Die derzeit beliebtesten Front-End-Frame...
Für gleichmäßig verteilte Layouts verwenden wir i...
Basierend auf täglichen Entwicklungserfahrungen u...
Erstellen Sie eine neue server.js Garn init -y Ga...
Als er über die Seite zur Bedienung der Bildschir...
In diesem Artikel erfahren Sie mehr über einen pr...
Inhalt dieses Artikels: Seitenhohlmaskenebene, Se...
Über Win Docker-Desktop möchte ich mich mit der C...