Der einfache Webserver: Unterschied zwischen den Versionen
| (2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 5: | Zeile 5: | ||
=Service Datei= | =Service Datei= | ||
vi /etc/systemd/system/simple-http.service | vi /etc/systemd/system/simple-http.service | ||
| − | |||
<pre> | <pre> | ||
[Unit] | [Unit] | ||
| Zeile 32: | Zeile 31: | ||
;Systemd Logs | ;Systemd Logs | ||
journalctl -fu simple-http.service | 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 | ;Kontrolle ob der Port geöffnet ist | ||
| − | ss -lntp | grep | + | ss -lntp | grep :80 |
=Erklärung= | =Erklärung= | ||
;[Unit] | ;[Unit] | ||
*Description=My Miscellaneous Service | *Description=My Miscellaneous Service | ||
| − | Eine Beschreibung des Dienstes | + | Eine Beschreibung des Dienstes, die bei systemctl status angezeigt wird. |
*After=network.target | *After=network.target | ||
Gibt an, dass dieser Dienst erst gestartet wird, nachdem das Netzwerksystem gestartet wurde. | Gibt an, dass dieser Dienst erst gestartet wird, nachdem das Netzwerksystem gestartet wurde. | ||
| + | |||
;[Service] | ;[Service] | ||
| − | *Type=simple | + | *Type=simple |
| − | Der Dienst | + | Systemd behandelt den gestarteten Prozess direkt als Hauptprozess. Der Dienst gilt als aktiv, sobald ExecStart läuft – kein Forking. |
*WorkingDirectory=/srv/www | *WorkingDirectory=/srv/www | ||
| − | Das Arbeitsverzeichnis | + | Das Arbeitsverzeichnis des Dienstes. Python's http.server liefert Dateien aus diesem Verzeichnis aus. |
| − | *ExecStart= | + | *ExecStart=/bin/python3 -m http.server 80 |
| − | Der Befehl, der | + | Der Befehl, der den Dienst startet. Python3 startet einen einfachen HTTP-Server auf Port 80. |
*Restart=on-abort | *Restart=on-abort | ||
Der Dienst wird neu gestartet, wenn er unerwartet beendet wird (z.B. durch einen Absturz). | Der Dienst wird neu gestartet, wenn er unerwartet beendet wird (z.B. durch einen Absturz). | ||
| + | |||
;[Install] | ;[Install] | ||
*WantedBy=multi-user.target | *WantedBy=multi-user.target | ||
| − | + | Der Dienst wird im Mehrbenutzermodus ohne grafische Benutzeroberfläche gestartet, was dem normalen Serverbetrieb entspricht. | |
=Zusammenfassung= | =Zusammenfassung= | ||
| − | Die Datei definiert einen systemd-Dienst, der einen einfachen HTTP-Server startet und | + | 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. |
Aktuelle Version vom 15. April 2026, 06:57 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.
- 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.