Supervisor: Ein robustes Prozesskontrollsystem für PHP-Anwendungen
Supervisor ist ein leistungsstarkes Tool zur Verwaltung von Hintergrundprozessen, eine Notwendigkeit für PHP-Entwickler, die lang laufende Aufgaben, Warteschlangenarbeiter und andere Hintergrundjobs bearbeiten. In diesem Handbuch werden die Supervisor-Einrichtung, die PHP-Anwendungsintegration und die umfassende Konfiguration für optimale Leistung detailliert beschrieben.
Der Vorgesetzte zeichnet sich dadurch aus, dass er Hintergrundaufgaben verwaltet:
Es ist besonders vorteilhaft für PHP-Projekte, die Folgendes verwenden:
Ubuntu/Debian:
<code class="language-bash">sudo apt update sudo apt install supervisor</code>
CentOS/RedHat:
<code class="language-bash">sudo yum install epel-release sudo yum install supervisor</code>
Nach der Installation Supervisor aktivieren und aktivieren:
<code class="language-bash">sudo systemctl start supervisord sudo systemctl enable supervisord</code>
Supervisor verwendet Konfigurationsdateien (normalerweise in /etc/supervisor/conf.d/
), um einzelne Programme zu verwalten.
Beispiel für eine Grundkonfiguration:
Erstellen Sie /etc/supervisor/conf.d/my_php_worker.conf
mit diesem Inhalt:
<code class="language-ini">[program:my_php_worker] command=php /path/to/worker.php autostart=true autorestart=true stderr_logfile=/var/log/my_php_worker.err.log stdout_logfile=/var/log/my_php_worker.out.log</code>
Die Option --tries=3
(innerhalb der command
-Direktive) begrenzt die Neustartversuche auf drei, bevor ein Fehler auftritt.
Übernehmen Sie die Konfiguration:
<code class="language-bash">sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start my_php_worker:*</code>
Hier ist eine detaillierte Aufschlüsselung der Supervisor-Konfigurationsoptionen:
command
: Der auszuführende Befehl. Beispiel: command=php /path/to/worker.php
autostart
: Startet das Programm automatisch mit Supervisor. Werte: true
(Standard), false
. Beispiel: autostart=true
autorestart
: Automatischer Neustart bei Fehler. Werte: true
, false
, unexpected
. Beispiel: autorestart=unexpected
startsecs
: Mindestlaufzeit (Sekunden), bevor ein Prozess als gestartet gilt. Standard: 1. Beispiel: startsecs=5
startretries
: Maximale Neustartversuche vor dem Scheitern. Standard: 3. Beispiel: startretries=5
exitcodes
: Akzeptable Exit-Codes, die Neustarts verhindern. Standard: 0,2. Beispiel: exitcodes=0,1
stopwaitsecs
: Zeit (Sekunden), die auf das ordnungsgemäße Herunterfahren vor der erzwungenen Beendigung gewartet wird. Standard: 10. Beispiel: stopwaitsecs=20
redirect_stderr
: Standardfehler zur Standardausgabe umleiten. Werte: true
, false
(Standard). Beispiel: redirect_stderr=true
stdout_logfile
/ stderr_logfile
: Protokolldateipfade für Standardausgabe und Fehler. Beispiel: stdout_logfile=/var/log/my_program.out.log
stdout_logfile_maxbytes
/ stderr_logfile_maxbytes
: Maximale Protokolldateigröße vor der Rotation. Standard: 50 MB. Beispiel: stdout_logfile_maxbytes=10MB
stdout_logfile_backups
/ stderr_logfile_backups
: Anzahl der rotierten Protokolldateien, die aufbewahrt werden sollen. Standard: 10. Beispiel: stdout_logfile_backups=3
user
: Systembenutzer, unter dem das Programm ausgeführt werden soll. Beispiel: user=www-data
environment
: Umgebungsvariablen. Beispiel: environment=APP_ENV="production",DB_HOST="localhost"
priority
: Startreihenfolge (niedrigere Werte beginnen zuerst). Standard: 999. Beispiel: priority=100
directory
: Arbeitsverzeichnis. Beispiel: directory=/path/to/your/app
stopasgroup
: Stoppsignal an den Prozess und seine untergeordneten Elemente senden. Werte: true
, false
(Standard). Beispiel: stopasgroup=true
killasgroup
: Beenden Sie den Prozess und seine untergeordneten Elemente nach stopwaitsecs
gewaltsam. Werte: true
, false
(Standard). Beispiel: killasgroup=true
Laravel-Warteschlangen:Verwalten Sie queue:work
Befehle für eine zuverlässige Jobverarbeitung.
<code class="language-bash">sudo apt update sudo apt install supervisor</code>
Geplante Aufgaben: Ersetzen Sie cron für eine robustere geplante Skriptausführung.
<code class="language-bash">sudo yum install epel-release sudo yum install supervisor</code>
Lang laufende Skripte:Verwalten Sie persistente Skripte wie WebSocket-Server.
<code class="language-bash">sudo systemctl start supervisord sudo systemctl enable supervisord</code>
Stellen Sie sicher, dass Supervisor beim Systemstart startet:
Supervisor-Dienst aktivieren: sudo systemctl enable supervisord
Starten Sie den Dienst (falls erforderlich): sudo systemctl start supervisord
stdout_logfile_maxbytes
und stdout_logfile_backups
.environment
-Direktive, um Variablen zu verwalten.Supervisor ist ein unverzichtbares Tool für PHP-Entwickler, die Hintergrundprozesse verwalten. Dieses Handbuch bietet eine umfassende Einführung in die Installation, Konfiguration und praktischen Anwendungen und gewährleistet eine zuverlässige und effiziente Aufgabenverwaltung für Ihre PHP-Projekte.
Das obige ist der detaillierte Inhalt vonSupervisor-Leitfaden für PHP-Entwickler. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!