In älteren Zeiten wurde Linux vom sogenannten Init-System gestartet – dies hatte einen Nachteil: Jeder zu startende Dienst wurde der Reihe nach, einer nach dem anderen, gestartet. Dies kostete natürlich vor allem beim Start des Systems Zeit. Mit Systemd änderte sich dies – dieses neue Init-System startet mehrere Dienste zur selben Zeit, und das System startet um vieles schneller.
Für manche ist Systemd jedoch auch ein Nachteil – so kontrolliert Systemd um einiges mehr als nur die Prozesse beim Start des Systems und beim Herunterfahren. Unter anderem werden auch die Logs von Systemd gesteuert. Manche meinen eben, es sollte nicht zu viel von einem einzigen Dienst gesteuert werden.
Es ist freie Software – es wird von den meisten Linux-Systemen genutzt, also nutzen wir es. Hier die wichtigsten Dinge, die Sie mit Systemd anstellen können. Wichtig – soweit nicht anders angegeben, werden alle Befehle mit administrativen Rechten ausgeführt.
Inhaltsverzeichnis
Alle Dienste anzeigen
Alle laufenden Dienste werden als Units bezeichnet, angezeigt werden diese mit dem Befehl:
systemctl list-units
Die Ausgabe kann sehr lang sein, mit den Pfeiltasten scrollen Sie sich durch die Liste – mit der Taste q wird beendet. Die Tabelle zeigt folgende Informationen:
- UNIT – Der komplette Name
- LOAD – Geladen oder nicht
- ACTIVE – Aktuell aktiv oder nicht
- SUB – Zeigt den untergeordneten Status an
- DESCRIPTION – Eine kurze Beschreibung
Nun gibt es folgende Arten von Units:
- service – Dienste
- mount – Hängt Partitionen ein und aus
- device – Erstellt Gerätedateien
- path – Änderungen an Dateien
- network – Netzwerk (erweiterte Einstellungen)
- socket – Verbindungen zwischen Prozessen
- target – Gruppen von Units
- timer – Über Systemd gesteuerte Automatisierung
Dienste anzeigen
Die wichtigsten Dinge, die uns interessieren werden, sind die laufenden oder auch nicht laufenden Dienste – also services:
systemctl --type=service
Hiermit werden uns alle laufenden und nicht laufenden Dienste angezeigt. Auch hier werden die Pfeiltasten zum Scrollen genutzt, zum Beenden der Ausgabe die Taste q. Die Tabelle zeigt dieselben Informationen.
Eher unwichtig, aber manchmal auch doch interessant: Sie können sich natürlich auch die Abhängigkeiten von Diensten anzeigen lassen, etwa für den Dienst accounts-daemon.service:
systemctl list-dependencies accounts-daemon.service
Dienste aktivieren und deaktivieren
Nicht benötigte Dienste müssen nicht unbedingt beim Start des Systems automatisch starten – man kann sie auch manuell starten. Hat man beispielsweise den Apache-Webserver installiert und nutzt ihn nur hin und wieder zur Entwicklung von Webseiten, muss er nicht dauerhaft laufen, sondern nur dann, wenn man ihn auch braucht. Nehmen wir in diesem Fall den Service apache.service – um den automatischen Start zu deaktivieren:
systemctl disable apache.service
Möchten Sie den automatischen Start wieder aktivieren:
systemctl enable apache.service
Den Status eines Dienstes genauer anzeigen
Nähere Informationen über den Status eines Dienstes lassen Sie sich mit folgendem Befehl anzeigen – in diesem Fall mit dem Dienst accounts-daemon.service:
systemctl status accounts-daemon.service
Dienste manuell starten und stoppen
Nicht automatisch gestartete Dienste lassen sich natürlich manuell starten und stoppen, in diesem Beispiel mit dem Dienst mariadb.service:
Starten:
systemctl start mariadb.service
Stoppen:
systemctl stop mariadb.service
Neu starten:
systemctl restart mariadb.service
Das System steuern
Mit folgenden Befehlen lässt sich das System …
Herunterfahren:
systemctl poweroff.target
Neu starten:
systemctl reboot.target
In Bereitschaft versetzen:
systemctl suspend.target
In den Ruhezustand versetzen:
systemctl hibernate.target
In den Runlevel 3 versetzen (keine grafische Oberfläche):
systemctl multi-user.target
In den Runlevel 5 versetzen (Grafische Oberfläche):
systemctl graphical.target
In den Rettungsmodus versetzen – Runlevel 1 (ohne grafische Oberfläche):
systemctl rescue.target
Log-Dateien anzeigen
Auch um die Log-Dateien kümmert sich Systemd – hierzu nutzen Sie den Befehl:
journalctl
Mit der Option -b
lassen Sie sich die Log-Dateien seit dem letzten Start anzeigen:
journalctl -b
Mit der Option -k
lassen Sie sich nur die Meldungen des Kernels anzeigen – entspricht dem Befehl dmesg:
journalctl -k
Mit der Option -f
lassen Sie sich die aktuellen Log-Meldungen anzeigen, mit Strg+c lässt sich die Ausgabe beenden:
journalctl -f
Um sich ältere Log-Dateien anzuzeigen, haben Sie mehrere Möglichkeiten, lassen Sie sich als Erstes alle Systemstarts anzeigen:
journalctl --list-boots
In der Ausgabe finden Sie ganz hinten Datum und Uhrzeit des Starts, ganz vorne eine Ziffer – diese Ziffer nutzen Sie nun, um sich die Meldungen dieser Sitzung anzeigen zu lassen. Als Beispiel mit der „6„:
journalctl -b 6
Mit der Option --since=Datum
lassen Sie sich die Meldungen ab diesem Datum anzeigen – etwa (JJJJ-MM-TT HH:MM:SS):
journalctl --since=2021-08-03 12:00:00
Start-Analyse mit Systemd
Mittels Systemd lässt sich natürlich auch herausfinden, warum das System länger beim Starten braucht. Für diese Befehle brauchen Sie keine administrativen Rechte. Mit:
systemd-analyze
erhalten Sie eine kurze Angabe über die Startzeit des Systems:
systemd-analyze blame
Zeigt wiederum die Startzeit aller Units:
Zuletzt zeigt ein:
systemd-analyze critical-chain
die Startzeit inklusive Abhängigkeiten:
Eine grafische erhalten Sie mit dem Befehl:
systemd-analyze plot > bootchart.svg
Hiermit erhalten Sie eine SVG-Datei, die Sie im Webbrowser öffnen können. Gespeichert wird diese im Verzeichnis, in dem Sie sich am Terminal gerade befinden:
23 Reaktionen
[…] wiederkehrende Aufgaben mit der System-Software Cron, die lässt sich jedoch auch problemlos mit Systemd erledigen. Hierzu nutzt man Units des Typs […]
[…] Der Reiter „Dienste“ lässt es wieder zu, gewisse Dienste automatisch starten zu lassen oder auch solche automatisch zu startenden Dienste zu deaktivieren, oder zumindest manuell zu starten – besonders beim Deaktivieren von Diensten sollten Sie wissen, was Sie tun, siehe auch Systemd. […]
[…] Beitrag Systemd – Steuerzentrale unter Linux lesen Sie unter anderem, wie Sie die Logdateien des Systems über das Terminal auslesen. […]
[…] Beitrag Systemd – Die Steuerzentrale von Linux lesen Sie unter anderem, wie Sie die Logdateien des Systems über das Terminal auslesen. […]
[…] Linux mit Systemd ändern Sie den Hostnamen / Rechnernamen ganz einfach […]
[…] ist unter Linux-Distributionen mit Systemd nicht nötig. Starten Sie als Administrator am Terminal den […]
[…] jedoch auch mit Debian, Ubuntu, Linux Mint, openSUSE – für jede Linux-Distribution, die Systemd einsetzt – also beinahe […]
[…] Mit Systemd lassen sich unter Linux die Log-Meldungen des Systems und des Kernels anzeigen – dies natürlich nur als root auf dem Terminal. […]
[…] Sie Cron überhaupt nicht, können Sie dies auch durch Systemd erledigen […]
[…] Viele Benutzer haben mehrere Rechner, auch ich – ich habe einen Linux-Laptop für die Firma, einen Linux-Laptop privat für unterwegs und einen Standrechner zu Hause. Zumindest auf meinen privaten Rechnern will ich dieselben Daten und Einstellungen haben. Das bedeutet natürlich immer synchronisieren – nein, dies bedeutet es nicht, zumindest nicht unter Linux mit Systemd. […]
[…] auf dem Host über die Paket-Verwaltung die Pakete “cockpit cockpit-machines“, über Systemd aktivieren Sie den Dienst am Terminal […]
[…] haben wollen – man deaktiviert in diesem Fall ganz einfach den automatischen Start mittels Systemd – also als Administrator auf dem […]
[…] Unter Debian läuft die Datenbank nach der Installation automatisch – Sie können dies über Systemd als Administrator am Terminal prüfen: […]
[…] läuft als Systemd-Dienst, unter Debian läuft dieser nach der Installation auch gleich – zeigt der […]
[…] – muss SelekTor Tor starten. Hierzu müssen wir den automatischen Start von Tor mittels Systemd verhindern – dies gelingt mit administrativen Rechten auf dem Terminal mit dem […]
[…] basiert auf Debian oder wenn gewünscht auf Devuan – Debian ohne Systemd. PeppermintOS nutzt den schlanken XFCE als Desktop-Umgebung und hat so gut wie keine Anwendungen […]
[…] einem Linux-Server ohne grafische Oberfläche steuert man Systemd-Dienste natürlich als root auf dem Terminal – hat man eine grafische Oberfläche, kann man […]
[…] auch automatisch vor sich gehen. Hier fügen Sie neue Benutzer hinzu, verwalten die Dienste per Systemd und […]
[…] haben uns unter Systemd unter anderem angesehen, welche Dienste am längsten brauchen, um zu starten. Diesmal sehen wir uns […]
[…] Wir haben uns auf der Linux Bibel schon einmal mit dem Paket-Manager Guix befasst – mit diesem lassen sich unabhängig von der Distribution Pakete von GNU installieren. Nun, von GNU gibt es auch ein eigenes System namens GNU Guix System – dieses nutzt den Linux Libre-Kernel und Shepherd als Init-System – so gesehen die Alternative zu Systemd. […]
[…] Einführung von Systemd war für so einige Linux-Enthusiasten, ein vollkommener Umbau von Linux, absolut böse, die Reiter […]
[…] Warum wird Systemd eigentlich gerne schlecht geredet? – Linux-Bibel bei Systemd – Die Steuerzentrale von Linux […]
[…] muss natürlich nicht sein, Sie können die Software über Systemd steuern – also als root auf dem […]