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.

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:

Gefällt mir 5
Gefällt mir nicht 0

Categories:

Tags:

Schreibe einen Kommentar

23 Reaktionen

  1. […] 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. […]

  2. […] 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. […]

Neue Themen im Forum
Debian installieren - für Anfänge …Hallo, jetzt gelingt mir die Installation auch über "Insta … Weiterlesen
Frage zu GrubDanke @juhu, das war für mich eine reine Verständnisfrage allge … Weiterlesen
Brother Drucker unter LinuxMit der Suche nach „Linux Brother HL-2030“ fand ich zur Seite htt … Weiterlesen
Kategorien im Wiki
WIKI-Beiträge des Monates

Die Beiträge des Monates finden Sie im Kalender unter den blau markierten Tageszahlen.

September 2023
M D M D F S S
 123
45678910
11121314151617
18192021222324
252627282930  
Archive