Installation, Konfiguration und Verwendung des Process Daemon Supervisors unter Linux

Installation, Konfiguration und Verwendung des Process Daemon Supervisors unter Linux

Supervisor ist ein sehr gutes Daemon-Verwaltungstool. Es verfügt über eine Reihe leistungsstarker Funktionen wie automatischen Start, Protokollausgabe, automatisches Protokollschneiden usw. Im Folgenden finden Sie eine Aufzeichnung der Installation und Verwendung von Supervisor unter CentOS.

Installieren

# epel-Quelle yum installiere epel-release
# Supervisor installieren
yum install -y Supervisor
# Beim Booten automatisch starten systemctl enable supervisord
# Starten Sie den Supervisord-Dienst systemctl start supervisord 
Schlag

Konfigurationspfad

# Hauptkonfigurationsdatei /etc/supervisord.conf
# Führen Sie den Programmkonfigurationsordner /etc/supervisord.d/ aus.
Schlag

Einsatzkommando

systemctl stop supervisord
systemctl start supervisord
systemctl status supervisord
# Laden Sie die Konfigurationsdatei neu, ohne das laufende Programm zu beeinträchtigen systemctl reload supervisord
systemctl restart supervisord
Schlag

Test verwenden

Schreiben Sie ein Testskript test.php, um die Anzahl der Starts und Läufe aufzuzeichnen.

<?php
versuchen {
  $a = file_get_contents('./times.json');
} Fang (Ausnahme $e) {
  $a = 0;
}
$a++;
: file_put_contents('./times.json', $a);
echo date('Ymd H:i:s') . " Dies ist der {$a}te Start!!!!" . PHP_EOL;

$i = 1;
während (1) {
  echo date('Ymd H:i:s') . "{$i}te Ausgabe" . PHP_EOL;
  $i++;
  Schlaf (5);
}

PHP

Fügen Sie test.ini im Programmkonfigurationsordner /etc/supervisord.d hinzu:

[Programm:Test]
Verzeichnis=/home/wwwroot/test.cc
Befehl=php test.php
autostart=true
autorestart=true
stderr_logfile=/home/wwwroot/test.cc/log/error.log
stdout_logfile=/home/wwwroot/test.cc/log/out.log
Ini

Oben sind nur einige notwendige Grundkonfigurationen. Ausführlichere Konfigurationsreferenz:

;[Programm:derProgrammname]
;command=/bin/cat ; das Programm (relativ verwendet PATH, kann Argumente annehmen)
;Prozessname=%(Programmname)s ; Prozessname Ausdruck (Standard %(Programmname)s)
;numprocs=1 ; Anzahl der zu startenden Prozesskopien (def. 1)
;directory=/tmp ; Verzeichnis, in das cwd vor der Ausführung wechselt (def. kein cwd)
;umask=022 ; umask für Prozess (Standard: Keine)
;priority=999 ; die relative Startpriorität (Standard 999)
;autostart=true ; beim Start von supervisord starten (Standard: true)
;autorestart=true ; Neustart bei unerwartetem Beenden (Standard: true)
;startsecs=10 ; Anzahl der Sekunden, die das Programm laufen muss (def. 1)
;startretries=3 ; max. Anzahl fehlgeschlagener serieller Starts (Standard 3)
;exitcodes=0,2 ; „erwartete“ Exitcodes für den Prozess (Standard 0,2)
;Stoppsignal=QUIT ; Signal zum Beenden des Prozesses (Standard TERM)
;stopwaitsecs=10 ; maximale Anzahl an Sekunden, die auf vor SIGKILL gewartet werden soll (Standard 10)
;user=chrism ; setuid für dieses UNIX-Konto, um das Programm auszuführen
;redirect_stderr=true; proc stderr auf stdout umleiten (Standard: false)
;stdout_logfile=/a/Pfad ; stdout-Protokollpfad, NONE für keinen; Standardwert: AUTO
;stdout_logfile_maxbytes=1MB ; max. Anzahl Logdateibytes vor Rotation (Standard 50 MB)
;stdout_logfile_backups=10 ; Anzahl der Backups der stdout-Logdateien (Standard: 10)
;stdout_capture_maxbytes=1MB ; Anzahl der Bytes im „Capturemode“ (Standard 0)
;stdout_events_enabled=false ; Ereignisse beim Schreiben auf stdout ausgeben (Standard: „false“)
;stderr_logfile=/a/Pfad ; stderr-Protokollpfad, NONE für keinen; Standardwert: AUTO
;stderr_logfile_maxbytes=1MB ; max # Logdateibytes b4-Rotation (Standard 50MB)
;stderr_logfile_backups=10 ; Anzahl der Backups der stderr-Logdateien (Standard: 10)
;stderr_capture_maxbytes=1MB ; Anzahl der Bytes im „Capturemode“ (Standard 0)
;stderr_events_enabled=false ; Ereignisse bei Stderr-Schreibvorgängen ausgeben (Standard: „false“)
;Umgebung=A=1,B=2 ; Ergänzungen zur Prozessumgebung (def. keine Ergänzungen)
;serverurl=AUTO ; Server-URL-Berechnung überschreiben (Childutils)
Ini

Führen Sie den Befehl „Neustart“ oder „Konfiguration neu laden“ aus, um die neue Konfiguration zu laden:

systemctl restart supervisord
systemctl reload supervisord
Schlag

Sehen Sie sich den Vorgang an:

[root@localhost test.cc]# ps -aux | grep test.php
Wurzel 22277 0,0 0,6 269732 12124 ? S 17:38 0:00 php test.php
root 22335 0,0 0,0 112712 996 Punkte/0 S+ 17:41 0:00 grep --color=auto test.php
Schlag

Sie können den Server neu starten oder den Prozess kill -9 PID beenden. Sie werden feststellen, dass supervisor das Programm so schnell wie möglich neu startet und so den Zweck der Daemonisierung des Prozesses erreicht.

Bezüglich der Konfiguration schauen Sie sich die Referenz oben genauer an, sie deckt grundsätzlich die benötigten Funktionen, Mehrprozessbetrieb, Stammschnittgröße, Rückhaltemenge etc. ab. Sie ist leistungsstark und einfach zu bedienen.

Weitere erweiterte Funktionen finden Sie im Handbuch supervisor -Website: Portal

Zusammenfassen

Oben wird die vom Herausgeber vorgestellte Installation, Konfiguration und Verwendung des Process Daemon Supervisors in Linux beschrieben. Ich hoffe, es ist für alle hilfreich. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!
Wenn Sie diesen Artikel hilfreich finden, können Sie ihn gerne abdrucken und dabei bitte die Quelle angeben. Vielen Dank!

Das könnte Sie auch interessieren:
  • Tutorial zur Installation und Konfiguration des Linux-Prozessmanagement-Tools Supervisor
  • Installation und Verwendung des Linux-Betriebs- und Wartungstools Supervisor (Prozessmanagement-Tool)
  • Detaillierte Erläuterung der Installation und Konfiguration von Supervisor (Linux/Unix-Prozessmanagementtool)
  • PHP-Programmierer spielen Linux-Serien mit Supervisor zur Implementierung von Daemon-Prozessen
  • Erfahren Sie in 3 Minuten, wie Sie den Supervisor Watchdog verwenden

<<:  Angular-Leistungsoptimierung: Komponenten von Drittanbietern und Lazy-Loading-Technologie

>>:  MySQL fragt den aktuellsten Datensatz der SQL-Anweisung ab (Optimierung)

Artikel empfehlen

Nginx-Server fügt benutzerdefinierte Systemd-Dienstprozessanalyse hinzu

1. Nehmen Sie nginx als Beispiel Nginx mit dem Be...

Vue implementiert einen beweglichen schwebenden Button

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Anwendungsfälle von MySql Escape

MySQL-Escape Escape bedeutet die ursprüngliche Se...

Zusammenfassung häufig verwendeter Leistungstestskripte für VPS-Server

Hier ist ein allgemeines Ein-Klick-Leistungstests...

So installieren Sie MySQL 5.7 aus dem Quellcode in einer CentOS 7-Umgebung

Dieser Artikel beschreibt, wie MySQL 5.7 aus dem ...

Verwenden des radialen Farbverlaufs in CSS zum Erzielen eines Karteneffekts

Vor einigen Tagen erhielt eine Kollegin ein Punkt...

Tutorial zur MySQL-Optimierung: Große Paging-Abfrage

Inhaltsverzeichnis Hintergrund LIMIT-Optimierung ...

Tutorial zur Installation von MySQL 5.7.18 mit einem RPM-Paket

System: CentOS 7 RPM-Pakete: mysql-community-clie...

Lassen Sie uns über die Speicher-Engine in MySQL sprechen

Grundlagen In einer relationalen Datenbank entspr...

vue.js lädt Bilder entsprechend der Bild-URL herunter

Als ich kürzlich an einem Frontend-Docking-Funkti...

Codebeispiele für allgemeine Docker-Datenvolumenvorgänge

Wenn der Entwickler Dockerfile zum Erstellen des ...

Verwenden Sie „overflow: hidden“, um Seiten-Bildlaufleisten zu deaktivieren

Code kopieren Der Code lautet wie folgt: html { Ü...

Detaillierte Erklärung zur Verwendung verschiedener MySQL-Indizes

1. Langsames Abfrageprotokoll 1.1 MySQL-Protokoll...

Javascript zum Umschalten durch Klicken auf das Bild

Durch Klicken Bilder zu wechseln, ist im Leben ei...