Der einfache Webserver: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „=Service Datei= vi /etc/systemd/system/simple-http.service <pre> [Unit] Description=My Miscellaneous Service After=network.target [Service] Type=simple User…“)
 
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
=Vorarbeiten=
 +
mkdir /srv/www
 +
chmod 755 /srv/www
 +
 
=Service Datei=
 
=Service Datei=
 
  vi /etc/systemd/system/simple-http.service
 
  vi /etc/systemd/system/simple-http.service
 
 
<pre>
 
<pre>
 
[Unit]
 
[Unit]
Zeile 9: Zeile 12:
 
[Service]
 
[Service]
 
Type=simple
 
Type=simple
User=kit
+
WorkingDirectory=/srv/www
WorkingDirectory=/home/kit/Downloads
+
ExecStart=/bin/python3 -m http.server 80
ExecStart=/bin/python3 -m http.server
 
 
Restart=on-abort
 
Restart=on-abort
  
Zeile 29: 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 8000
+
  ss -lntp | grep :80
  
 
=Erklärung=
 
=Erklärung=
 
;[Unit]
 
;[Unit]
 
*Description=My Miscellaneous Service
 
*Description=My Miscellaneous Service
Eine Beschreibung des Dienstes. In diesem Fall wird der Dienst als "My Miscellaneous Service" beschrieben.
+
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
Gibt an, dass dies ein einfacher Dienst ist. systemd nimmt an, dass der Dienst sofort nach dem Starten des in ExecStart angegebenen Befehls einsatzbereit ist.
+
Systemd behandelt den gestarteten Prozess direkt als Hauptprozess. Der Dienst gilt als aktiv, sobald ExecStart läuft – kein Forking.
*User=thomas
+
*WorkingDirectory=/srv/www
Der Dienst wird als Benutzer thomas ausgeführt.
+
Das Arbeitsverzeichnis des Dienstes. Python's http.server liefert Dateien aus diesem Verzeichnis aus.
*WorkingDirectory=/home/thomas/html
+
*ExecStart=/bin/python3 -m http.server 80
Das Arbeitsverzeichnis für den Dienst. Hier wird der Dienst im Verzeichnis /home/thomas/html ausgeführt.
+
Der Befehl, der den Dienst startet. Python3 startet einen einfachen HTTP-Server auf Port 80.
*ExecStart=/usr/bin/python3 -m http.server
 
Der Befehl, der ausgeführt wird, um den Dienst zu starten. In diesem Fall startet Python3 einen einfachen HTTP-Server.
 
 
*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
Dieser Schlüssel gibt an, dass der Dienst im multi-user.target gestartet wird. multi-user.target ist ein systemd-Ziel, das eine Nicht-Grafik-Benutzeroberfläche beschreibt und im Wesentlichen einen Mehrbenutzermodus ohne GUI darstellt.
+
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, der als Benutzer thomas ausgeführt wird und im Verzeichnis /home/thomas/html arbeitet. Der Dienst wird automatisch neu gestartet, wenn er abstürzt, und er wird nach dem Netzwerkdienst gestartet. Der Dienst wird im Mehrbenutzermodus ohne grafische Benutzeroberfläche verfügbar gemacht.
+
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.