Systemctl basis: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „=starten= *systemctl start apache2 =stop= *systemctl stop apache2 =restart= *systemctl restart apache2 =enable= *systemctl enable apache2 =diable= *systemctl d…“)
 
 
(16 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
=starten=
+
=Unsere erste Service unit=
*systemctl start apache2
+
*nano /etc/systemd/system/simple-http.service
=stop=
+
 
*systemctl stop apache2
+
<pre>
=restart=
+
[Unit]
*systemctl restart apache2
+
Description=My Miscellaneous Service
=enable=
+
After=network.target
*systemctl enable apache2
+
 
=diable=
+
[Service]
*systemctl disable apache2
+
Type=simple
=is-enabled=
+
WorkingDirectory=/srv/www
*systemctl is-enabled apache2
+
ExecStart=/bin/python3 -m http.server
 +
Restart=on-abort
 +
 
 +
[Install]
 +
WantedBy=multi-user.target
 +
</pre>
 +
=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.
 +
[[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