Systemd Service Iperf3: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
Zeile 1: Zeile 1:
 
=Service Datei=
 
=Service Datei=
  vi /etc/systemd/system/ipfer3.service
+
  vi /etc/systemd/system/iperf3.service
  
 
<pre>
 
<pre>
 
[Unit]
 
[Unit]
Description=Starte ipfer3 Netzwerkdienst
+
Description=iperf3 Netzwerk-Testserver
 
After=network.target
 
After=network.target
  
 
[Service]
 
[Service]
 
Type=simple
 
Type=simple
User=kit
+
User=nobody
WorkingDirectory=/home/kit/ipfer3
+
ExecStart=/usr/bin/iperf3 -s
ExecStart=/home/kit/ipfer3/ipfer3.py
+
Restart=on-failure
Restart=on-abort
 
  
 
[Install]
 
[Install]
Zeile 22: Zeile 21:
 
  systemctl daemon-reload
 
  systemctl daemon-reload
 
;Starten des Dienstes
 
;Starten des Dienstes
  systemctl start ipfer3.service
+
  systemctl start iperf3.service
;Aktivieren des Dienstes beim Neustart des Systems
+
;Aktivieren beim Systemstart
  systemctl enable ipfer3.service
+
  systemctl enable iperf3.service
 
;Status anzeigen
 
;Status anzeigen
  systemctl status ipfer3.service
+
  systemctl status iperf3.service
;Systemd Logs
+
;Logs anzeigen
  journalctl -fu ipfer3.service
+
  journalctl -fu iperf3.service
 +
;Prüfen ob Port 5201 offen ist
 +
ss -lntp | grep 5201
  
 
=Erklärung=
 
=Erklärung=
 
;[Unit]
 
;[Unit]
*Description=Starte ipfer3 Netzwerkdienst  
+
*Description=iperf3 Netzwerk-Testserver  
Eine Beschreibung des Dienstes. In diesem Fall wird der Dienst als "ipfer3 Netzwerkdienst" beschrieben.
+
Kurze Beschreibung des Dienstes.
  
 
*After=network.target   
 
*After=network.target   
Gibt an, dass dieser Dienst erst gestartet wird, nachdem das Netzwerk verfügbar ist.
+
Startet erst, wenn das Netzwerk bereit ist.
  
 
;[Service]
 
;[Service]
 
*Type=simple   
 
*Type=simple   
Ein einfacher Dienst: systemd geht davon aus, dass der Dienst einsatzbereit ist, sobald der Befehl in ExecStart ausgeführt wurde.
+
Ein einfacher Dienst ohne forking.
  
*User=kit  
+
*User=nobody  
Der Dienst wird mit den Rechten des Benutzers '''kit''' ausgeführt.
+
iperf3 benötigt keine speziellen Benutzerrechte. Sicherheitshalber wird ein unprivilegierter Benutzer verwendet.
  
*WorkingDirectory=/home/kit/ipfer3  
+
*ExecStart=/usr/bin/iperf3 -s  
Gibt das Arbeitsverzeichnis an, in dem das Skript gestartet wird.
+
Startet den iperf3-Server im Listenmodus (-s).
  
*ExecStart=/home/kit/ipfer3/ipfer3.py 
+
*Restart=on-failure  
Der vollständige Pfad zum auszuführenden Python-Skript.
+
Wird bei Fehlern automatisch neu gestartet.
 
 
*Restart=on-abort  
 
Der Dienst wird automatisch neu gestartet, wenn er unerwartet beendet wird (z. B. durch einen Fehler).
 
  
 
;[Install]
 
;[Install]
 
*WantedBy=multi-user.target   
 
*WantedBy=multi-user.target   
Definiert, dass der Dienst im Mehrbenutzer-Ziel (ohne grafische Oberfläche) aktiviert wird.
+
Wird im Mehrbenutzermodus aktiviert.
  
 
=Zusammenfassung=
 
=Zusammenfassung=
Diese systemd-Konfiguration startet das Python-Skript '''ipfer3.py''' als eigenen Dienst unter dem Benutzer '''kit'''. Das Skript liegt im Verzeichnis '''/home/kit/ipfer3''' und wird automatisch gestartet, sobald das System im Mehrbenutzermodus ist und das Netzwerk verfügbar ist. Ein Neustart erfolgt bei Abstürzen automatisch.
+
Diese Service-Datei startet den '''iperf3'''-Server als Dienst beim Booten und erlaubt dauerhafte Bandbreitenmessungen auf Port '''5201''' zwischen zwei Rechnern. Der Client nutzt dann z. B.:
 +
iperf3 -c server-ip

Aktuelle Version vom 26. März 2025, 06:20 Uhr

Service Datei

vi /etc/systemd/system/iperf3.service
[Unit]
Description=iperf3 Netzwerk-Testserver
After=network.target

[Service]
Type=simple
User=nobody
ExecStart=/usr/bin/iperf3 -s
Restart=on-failure

[Install]
WantedBy=multi-user.target

Handling

Änderungen laden
systemctl daemon-reload
Starten des Dienstes
systemctl start iperf3.service
Aktivieren beim Systemstart
systemctl enable iperf3.service
Status anzeigen
systemctl status iperf3.service
Logs anzeigen
journalctl -fu iperf3.service
Prüfen ob Port 5201 offen ist
ss -lntp | grep 5201

Erklärung

[Unit]
  • Description=iperf3 Netzwerk-Testserver

Kurze Beschreibung des Dienstes.

  • After=network.target

Startet erst, wenn das Netzwerk bereit ist.

[Service]
  • Type=simple

Ein einfacher Dienst ohne forking.

  • User=nobody

iperf3 benötigt keine speziellen Benutzerrechte. Sicherheitshalber wird ein unprivilegierter Benutzer verwendet.

  • ExecStart=/usr/bin/iperf3 -s

Startet den iperf3-Server im Listenmodus (-s).

  • Restart=on-failure

Wird bei Fehlern automatisch neu gestartet.

[Install]
  • WantedBy=multi-user.target

Wird im Mehrbenutzermodus aktiviert.

Zusammenfassung

Diese Service-Datei startet den iperf3-Server als Dienst beim Booten und erlaubt dauerhafte Bandbreitenmessungen auf Port 5201 zwischen zwei Rechnern. Der Client nutzt dann z. B.:

iperf3 -c server-ip