Systemctl basis: Unterschied zwischen den Versionen
| (15 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
=Unsere erste Service unit= | =Unsere erste Service unit= | ||
| + | *nano /etc/systemd/system/simple-http.service | ||
| + | |||
| + | <pre> | ||
| + | [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 | ||
| + | </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
