Systemd Grundlagen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Verfügbarkeit (01/2015)

Distribution Status
Fedora Fedora seit version 15 Standard
openSUSE openSUSE seit 12.1 Standard
Mandriva seit Mandriva 2011 Standart
Debian seit debian 8 jessie Standart
Ubuntu seit 15.04
Arch seit Oktoper 2012
Red Hat seit version 7

systemd wurde als externe Abhängigkeit für GNOME 3.2 vorgeschlagen.

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