Systemctl basis: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
=starten=
 
*systemctl start simple-http.service
 
=stop=
 
*systemctl stop simple-http.service
 
=restart=
 
*systemctl restart simple-http.service
 
=enable=
 
*systemctl enable simple-http.service
 
=disable=
 
*systemctl disable simple-http.service
 
 
=is-enabled=
 
*systemctl is-enabled simple-http.service
 
 
=Unsere erste Service unit=
 
=Unsere erste Service unit=
 
*nano /etc/systemd/system/simple-http.service
 
*nano /etc/systemd/system/simple-http.service
Zeile 29: Zeile 16:
 
WantedBy=multi-user.target
 
WantedBy=multi-user.target
 
</pre>
 
</pre>
 +
=Verzeichnis anlegen=
 +
*mkdir -p /srv/www
  
 
=Handling=
 
=Handling=
Zeile 43: Zeile 32:
 
;Kontrolle ob der Port geöffnet ist
 
;Kontrolle ob der Port geöffnet ist
 
*ss -lntp | grep 8000
 
*ss -lntp | grep 8000
 +
=Ein paar Datein zum Downloaden ins Verzeichnis schieben=
 +
*cp /usr/bin/* /srv/www/
  
 
=Erklärung=
 
=Erklärung=
Zeile 65: Zeile 56:
 
=Zusammenfassung=
 
=Zusammenfassung=
 
Die Datei definiert einen systemd-Dienst, der einen einfachen HTTP-Server startet und im Verzeichnis /srv//www 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 im Verzeichnis /srv//www 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.
 +
[[Kategorie:systemd]]
 +
[[Kategorie:Troubleshooting]]
 +
=Schaubild=
 +
{{#drawio:journal}}
 +
* '''journalctl''' ist loggt die Nachrichten und Fehlermeldungen von [[:Kategorie:systemd|systemd]]-Diensten
 +
* Ab Debian 12 ist das der Standard syslog und löst [[rsyslog]] ab
 +
 +
= letzte 10 Zeilen eines Dienstes anzeigen =
 +
* '''journalctl -u ''simple-http'' -n 10'''
 +
* ''-u'' steht für Unit und muss der exakte Dienstname sein (''.service'' kann aber weggelassen werden)
 +
 +
= Nur Neue Nachrichten anzeigen =
 +
* Neue Nachrichten
 +
* '''journalctl -f -u simple-http'''
 +
 +
 +
 +
= Kernel-Log des letzten Boots=
 +
* Im Kernel-Log stehen Meldungen von Programmen wie [[:Kategorie:nftables|nftables]]
 +
* Diese werden nicht über den jeweiligen Dienst geloggt, sondern über eine ''syslog-Kennung'' (-t oder --identifier)
 +
* '''journalctl -t kernel -b'''

Aktuelle Version vom 29. Januar 2026, 13:05 Uhr

Unsere erste Service unit

  • nano /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
Restart=on-abort

[Install]
WantedBy=multi-user.target

Verzeichnis anlegen

  • mkdir -p /srv/www

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
Kontrolle ob der Port geöffnet ist
  • ss -lntp | grep 8000

Ein paar Datein zum Downloaden ins Verzeichnis schieben

  • cp /usr/bin/* /srv/www/

Erklärung

[Unit]
  • Description=My Miscellaneous Service

Eine Beschreibung des Dienstes. In diesem Fall wird der Dienst als "My Miscellaneous Service" beschrieben.

  • After=network.target

Gibt an, dass dieser Dienst erst gestartet wird, nachdem das Netzwerksystem gestartet wurde.

[Service]
  • 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.

  • WorkingDirectory=/srv/www

Das Arbeitsverzeichnis für den Dienst. Hier wird der Dienst im Verzeichnis /home/thomas/html ausgeführt.

  • 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

Der Dienst wird neu gestartet, wenn er unerwartet beendet wird (z.B. durch einen Absturz).

[Install]
  • 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.

Zusammenfassung

Die Datei definiert einen systemd-Dienst, der einen einfachen HTTP-Server startet und im Verzeichnis /srv//www 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.

Schaubild

  • journalctl ist loggt die Nachrichten und Fehlermeldungen von systemd-Diensten
  • Ab Debian 12 ist das der Standard syslog und löst rsyslog ab

letzte 10 Zeilen eines Dienstes anzeigen

  • journalctl -u simple-http -n 10
  • -u steht für Unit und muss der exakte Dienstname sein (.service kann aber weggelassen werden)

Nur Neue Nachrichten anzeigen

  • Neue Nachrichten
  • journalctl -f -u simple-http


Kernel-Log des letzten Boots

  • Im Kernel-Log stehen Meldungen von Programmen wie nftables
  • Diese werden nicht über den jeweiligen Dienst geloggt, sondern über eine syslog-Kennung (-t oder --identifier)
  • journalctl -t kernel -b