Systemd Grundlagen: Unterschied zwischen den Versionen
| Zeile 1: | Zeile 1: | ||
*[[Systemd Besonderheiten]] | *[[Systemd Besonderheiten]] | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
= Units = | = Units = | ||
Version vom 18. September 2022, 11:59 Uhr
Units
Systemd wird über Dateien mit einem INI-Datei ähnlichen Format konfiguriert. In der Terminologie von systemd sind dies "Units". Bei Ubuntu vorinstallierte Units sind im Ordner /lib/systemd/system/ gespeichert. Falls sich jedoch eine Unit mit gleichem Namen im Verzeichnis /etc/systemd/system/ befindet, so wird diese bevorzugt und jene unterhalb von /lib ignoriert. Damit hat man die Möglichkeit, eine Unit an eigene Gegebenheiten anzupassen, ohne dass man befürchten muss, dass sie bei einer Systemaktualisierung überschrieben wird. Es existieren verschiedene Typen von Units, die von systemd je nach Endung des Dateinamens unterschiedlich behandelt werden:
| Typ | Beschreibung |
|---|---|
| .device | Legt Gerätedateien an |
| .mount | Ein- und Aushängen von Dateisystemen |
| .path | Startet die Unit via inotify |
| .service | Für Dienste |
| .socket | Stellt Verbindungen zwischen Prozessen her |
| .target | Definiert eine Gruppe von Units |
| .timer | Für wiederkehrende Aufgaben, ähnlich cron-Jobs |
Befehl zum Anzeigen
- systemctl list-units (zum anzeigen aller Units auf einem System)
- systemctl list-units --type service (zum anzeigen aller Units vom Typ "Service" auf einem System)
apport.service loaded active exited LSB: automatic crash r apt-daily.service loaded activating start start Daily apt activities atd.service loaded active running Deferred execution sch ...
Administration
Runlevel / Targets
| SystemVinit Runlevel | Systemd Target | Kommentar |
|---|---|---|
| 0 | runlevel0.target, poweroff.target | System herunterfahren |
| 1, s, single | runlevel1.target, rescue.target | Einzelnuzer Modus |
| 2, 4 | runlevel2.target, runlevel4.target, multi-user.target | Benuzerdefiniert, Standardmäsig identisch zu 3 |
| 3 | runlevel3.target, multi-user.target | Multi-user, Shell. Anmeldung über mehrere Consolen und7oder netzwerk |
| 5 | runlevel5.target, graphical.target | Multi-user, Grafisch. Gewöhnlich alle Dienste aus 3 sowie grafische Oberfläche |
| 6 | runlevel6.target, reboot.target | Reboot |
| emergency | emergency.target | Notfall Shell |
systemctl
Service File
Änderungen
Nach Änderungen
- systemctl daemon-reload
- systemctl enable firewall.service
- systemctl start firewall.service
journalctl
systemd verwendet standardmäßig ein zentrales Protokoll bzw. Journal, in das von journald alle Logmeldungen geschrieben werden. Zur Abfrage des Journals dient der Befehl journalctl.
Bootlogs
- journalctl -b
Journal vom 1 September bis zum 2. September 3 Uhr
- journalctl --since "2016-09-01" --until "2016-09-02 03:00"
FAQ
- Wie setze ich das Runlevel beim Booten?
- Unter systemd werden Runlevel als Targets bezeichnet. Um das Boot "Target" beim Booten zu setzen hängt man z.B. einen der folgenden Kernel Parameter an.
systemd.unit=multi-user.target(entspricht Runlevel 3)systemd.unit=rescue.target(entspricht Runlevel 1)
- Wie setze ich das Standard Target?
- Für Runlevel 3
# systemctl -f enable multi-user.target
- Für Runlevel 5
# systemctl -f enable graphical.target