Der einfache Webserver: Unterschied zwischen den Versionen
| Zeile 12: | Zeile 12: | ||
[Service] | [Service] | ||
Type=simple | Type=simple | ||
| − | |||
WorkingDirectory=/srv/www | WorkingDirectory=/srv/www | ||
ExecStart=/bin/python3 -m http.server 80 | ExecStart=/bin/python3 -m http.server 80 | ||
Version vom 15. April 2026, 06:43 Uhr
Vorarbeiten
mkdir /srv/www chmod 755 /srv/www
Service Datei
vi /etc/systemd/system/simple-http.service
[Unit] Description=My Miscellaneous Service After=network.target [Service] Type=simple WorkingDirectory=/srv/www ExecStart=/bin/python3 -m http.server 80 Restart=on-abort [Install] WantedBy=multi-user.target
Handling
- Änderungen laden
systemctl daemon-reload
- Starten des Dienstes
systemctl start simple-http.service
- Aktivieren des Dienstes beim Neustart des Systems
systemctl enable simple-http.service
- Status anzeigen
systemctl status simple-http.service
- Systemd Logs
journalctl -fu simple-http.service
- GET-Requests aus den Logs ausblenden
journalctl -fu simple-http.service | grep -v '"GET'
- Nur Fehler anzeigen
journalctl -fu simple-http.service -p err
- Kontrolle ob der Port geöffnet ist
ss -lntp | grep :80
Erklärung
- [Unit]
- Description=My Miscellaneous Service
Eine Beschreibung des Dienstes, die bei systemctl status angezeigt wird.
- After=network.target
Gibt an, dass dieser Dienst erst gestartet wird, nachdem das Netzwerksystem gestartet wurde.
- [Service]
- Type=simple
Systemd behandelt den gestarteten Prozess direkt als Hauptprozess. Der Dienst gilt als aktiv, sobald ExecStart läuft – kein Forking.
- User=www-data
Der Dienst wird unter dem unprivilegierten Benutzer www-data ausgeführt.
- WorkingDirectory=/srv/www
Das Arbeitsverzeichnis des Dienstes. Python's http.server liefert Dateien aus diesem Verzeichnis aus.
- ExecStart=/bin/python3 -m http.server 80
Der Befehl, der den Dienst startet. Python3 startet einen einfachen HTTP-Server auf Port 80.
- Restart=on-abort
Der Dienst wird neu gestartet, wenn er unerwartet beendet wird (z.B. durch einen Absturz).
- [Install]
- WantedBy=multi-user.target
Der Dienst wird im Mehrbenutzermodus ohne grafische Benutzeroberfläche gestartet, was dem normalen Serverbetrieb entspricht.
Zusammenfassung
Die Datei definiert einen systemd-Dienst, der einen einfachen HTTP-Server startet und Dateien aus /srv/www ausliefert. Der Dienst wird nach dem Netzwerk gestartet, läuft unter dem unprivilegierten Benutzer www-data und wird bei einem Absturz automatisch neu gestartet.