Web-Worker wie PHP-FPM, Node.js oder Python Gunicorn benötigen eine zuverlässige Prozessverwaltung, um Stabilität, automatische Neustarts und Ressourcenüberwachung zu gewährleisten. Zwei populäre Tools dafür sind Supervisor und systemd. Beide haben ihre Vor- und Nachteile, je nach Anwendungsfall und Infrastruktur. In diesem Leitfaden erfahren Einsteiger, IT-Studierende und Junior Network Engineers praxisnah, wie Supervisor und systemd für Web-Worker eingesetzt werden und welche Strategie besser passt.
Grundlagen von Supervisor
Supervisor ist ein Prozess-Manager, der speziell für lange laufende Prozesse entwickelt wurde. Er startet Prozesse, überwacht sie und kann sie bei Abstürzen automatisch neu starten.
Vorteile
- Einfach zu konfigurieren über
.conf-Dateien - Automatische Neustarts bei Absturz
- Multi-Process Management leicht möglich
- Web-Interface für Monitoring verfügbar
- Unabhängig von der Distribution
Nachteile
- Zusätzlicher Prozess benötigt eigene Ressourcen
- Keine native Integration in das System-Init
- Logging separat konfigurieren
Beispielkonfiguration
[program:myapp]
command=/usr/bin/python3 /var/www/myapp/app.py
directory=/var/www/myapp
autostart=true
autorestart=true
user=www-data
stdout_logfile=/var/log/myapp/stdout.log
stderr_logfile=/var/log/myapp/stderr.log
environment=ENVIRONMENT="production"
Grundlagen von systemd
systemd ist das native Init-System moderner Linux-Distributionen. Es verwaltet Services, Prozesse und Abhängigkeiten direkt auf Systemebene.
Vorteile
- Direkte Integration ins Betriebssystem
- Automatischer Start beim Boot
- Einheitliches Logging über
journalctl - Abhängigkeiten zwischen Services definierbar
- Keine zusätzlichen Prozesse nötig
Nachteile
- Komplexere Konfiguration als Supervisor
- Less portable zwischen verschiedenen Linux-Distributionen
- Erfordert Systemrechte zum Erstellen von Unit-Dateien
Beispielsystemd Service
[Unit]
Description=Python Web App
After=network.target
[Service]
User=www-data
Group=www-data
WorkingDirectory=/var/www/myapp
ExecStart=/usr/bin/python3 /var/www/myapp/app.py
Restart=always
Environment=ENVIRONMENT=production
[Install]
WantedBy=multi-user.target
Vergleich Supervisor vs. systemd
| Funktion | Supervisor | systemd |
|---|---|---|
| Integration ins OS | extern | nativ |
| Multi-Process | leicht konfigurierbar | möglich, aber komplexer |
| Logging | eigene Logdateien | journalctl |
| Ressourcenverbrauch | zusätzlicher Prozess | minimal |
| Portabilität | hoch | abhängig von Distribution |
| Autostart | Supervisor Service nötig | native Units |
Netzwerk- und Subnetzplanung für Web-Worker
Für Multi-Worker-Setups sollte die Netzwerkarchitektur stabil und segmentiert sein, um Monitoring, Health Checks und Deployments zu vereinfachen.
IPv4 Subnetz
<math>
Worker-IP = 192.168.460.10/24
Subnetzadresse = 192.168.460.10 & 255.255.255.0 = 192.168.460.0
Broadcastadresse = 192.168.460.0 | ~255.255.255.0 = 192.168.460.255
</math>
IPv6 Subnetz
<math>
Worker-IP = 2001:db8:abcd:460::10/64
Subnetzadresse = 2001:db8:abcd:460::0
Broadcastadresse = 2001:db8:abcd:460:ffff:ffff:ffff:ffff
</math>
Best Practices
- Für einfache Web-Worker auf einem Server ist systemd meist ausreichend
- Supervisor eignet sich für portable, Multi-Process Setups oder wenn keine Root-Rechte vorhanden sind
- Automatische Neustarts und Health Checks immer konfigurieren
- Logging zentralisieren über
journalctloder Supervisor-Logs - Ressourcenlimits setzen:
LimitNOFILE,LimitNPROC - Abhängigkeiten zwischen Services berücksichtigen
- Umgebungsvariablen und Secrets sicher verwalten
- Testumgebungen identisch zur Produktion betreiben
- Firewall und Subnetzsegmente für Web-Worker definieren
- Unit-Dateien bzw. Supervisor-Konfiguration versionieren und dokumentieren
Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3
Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.
Meine Leistungen umfassen:
-
Professionelle Konfiguration von Routern und Switches
-
Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen
-
Erstellung von Topologien und Simulationen in Cisco Packet Tracer
-
Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG
-
Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible
-
Erstellung von Skripten für wiederkehrende Netzwerkaufgaben
-
Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege
-
Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting
Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.











