So überprüfen Sie, ob eine systemd-Einheit in Linux aktiviert ist

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie den Status von systemd-Einheiten (systemd units) in Linux überprüfen. Sie verwenden den Befehl systemctl is-enabled, um festzustellen, ob eine Einheit so konfiguriert ist, dass sie beim Booten automatisch startet, und den Befehl systemctl list-units, um aktive Einheiten aufzulisten. Abschließend erkunden Sie den Speicherort der systemd-Einheitsdateien (systemd unit files) im Verzeichnis /etc/systemd. Dieses Lab vermittelt Ihnen essentielle Fähigkeiten für die Verwaltung von Diensten und das Verständnis des systemd-Initialisierungsprozesses.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") subgraph Lab Skills linux/ls -.-> lab-558771{{"So überprüfen Sie, ob eine systemd-Einheit in Linux aktiviert ist"}} linux/cat -.-> lab-558771{{"So überprüfen Sie, ob eine systemd-Einheit in Linux aktiviert ist"}} linux/cd -.-> lab-558771{{"So überprüfen Sie, ob eine systemd-Einheit in Linux aktiviert ist"}} linux/grep -.-> lab-558771{{"So überprüfen Sie, ob eine systemd-Einheit in Linux aktiviert ist"}} linux/ps -.-> lab-558771{{"So überprüfen Sie, ob eine systemd-Einheit in Linux aktiviert ist"}} linux/service -.-> lab-558771{{"So überprüfen Sie, ob eine systemd-Einheit in Linux aktiviert ist"}} end

Überprüfen des Einheitenstatus mit systemctl is-enabled

In diesem Schritt lernen Sie, wie Sie den Status von systemd-Einheiten (systemd units) mit dem Befehl systemctl is-enabled überprüfen.

Systemd ist ein System- und Dienstleistungsmanager (system and service manager) für Linux. Es verwaltet Prozesse nach dem initialen Bootvorgang. Eine "Einheit" (unit) in systemd bezieht sich auf eine Konfigurationsdatei, die beschreibt, wie ein Dienst, ein Gerät, ein Einhängepunkt (mount point) oder eine andere Systemressource behandelt werden soll.

Der Befehl systemctl is-enabled überprüft, ob eine Einheit so konfiguriert ist, dass sie beim Booten automatisch startet. Dies ist wichtig für Dienste, die Sie immer dann ausführen möchten, wenn das System startet.

Lassen Sie uns den Status des ssh-Dienstes überprüfen. Der SSH (Secure Shell)-Dienst ermöglicht es Ihnen, sich remote mit Ihrem Server zu verbinden.

Öffnen Sie Ihr Terminal, wenn es noch nicht geöffnet ist. Sie können das Symbol für das Xfce Terminal auf der linken Seite Ihres Desktops finden.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

systemctl is-enabled ssh

Sie sollten eine Ausgabe ähnlich der folgenden sehen:

enabled

Diese Ausgabe zeigt an, dass der ssh-Dienst so konfiguriert ist, dass er automatisch beim Booten des Systems startet.

Jetzt lassen Sie uns den Status eines Dienstes überprüfen, der möglicherweise standardmäßig nicht aktiviert ist, wie apache2 (ein Webserver).

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

systemctl is-enabled apache2

Sie könnten eine Ausgabe wie die folgende sehen:

disabled

Dies bedeutet, dass der apache2-Dienst nicht so konfiguriert ist, dass er automatisch beim Booten startet.

Das Verständnis, ob ein Dienst aktiviert oder deaktiviert ist, ist entscheidend für die Verwaltung Ihres Systems und die Gewährleistung, dass erforderliche Dienste nach einem Neustart ausgeführt werden.

Denken Sie daran, dass der Befehl systemctl is-enabled nur sagt, ob ein Dienst so konfiguriert ist, dass er beim Booten startet, nicht ob er derzeit ausgeführt wird. Sie werden in einem späteren Schritt lernen, wie Sie überprüfen können, ob ein Dienst ausgeführt wird.

Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.

Auflisten von Einheiten mit systemctl list-units

In diesem Schritt lernen Sie, wie Sie aktive systemd-Einheiten (systemd units) mit dem Befehl systemctl list-units auflisten.

Während systemctl is-enabled Ihnen sagt, ob eine Einheit so konfiguriert ist, dass sie beim Booten startet, zeigt systemctl list-units Ihnen, welche Einheiten derzeit im Arbeitsspeicher des Systems geladen und aktiv sind. Dies ist nützlich, um zu sehen, welche Dienste, Geräte und andere Ressourcen derzeit von systemd verwaltet werden.

Öffnen Sie Ihr Terminal, wenn es noch nicht geöffnet ist.

Geben Sie den folgenden Befehl ein und drücken Sie die Eingabetaste:

systemctl list-units

Sie werden eine lange Liste von Einheiten sehen. Die Ausgabe enthält typischerweise Spalten wie:

  • UNIT: Der Name der Einheit.
  • LOAD: Ob die Konfiguration der Einheit in den Arbeitsspeicher geladen wurde.
  • ACTIVE: Der allgemeine Aktivierungszustand der Einheit (z.B. active, inactive, failed).
  • SUB: Der detaillierte Aktivierungszustand der Einheit (z.B. running, exited, waiting).
  • DESCRIPTION: Eine kurze Beschreibung der Einheit.

Die Liste kann recht umfangreich sein. Um sie besser zu verwalten, können Sie die Ausgabe filtern. Beispielsweise können Sie nur Dienst-Einheiten (Einheiten, die auf .service enden) anzeigen, indem Sie Folgendes verwenden:

systemctl list-units --type service

Dieser Befehl zeigt Ihnen eine Liste aller derzeit aktiven Dienste.

Sie können auch grep verwenden, um nach bestimmten Einheiten in der Ausgabe zu suchen. Beispielsweise können Sie den ssh-Dienst finden, indem Sie Folgendes eingeben:

systemctl list-units | grep ssh

Dies zeigt Ihnen die Zeile, die der ssh.service-Einheit entspricht, wenn diese aktiv ist.

Der Befehl systemctl list-units ist ein leistungsstarkes Werkzeug, um den aktuellen Zustand Ihres Systems und die von systemd verwalteten Prozesse zu verstehen. Experimentieren Sie mit verschiedenen Optionen und grep, um die benötigten Informationen zu finden.

Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.

Untersuchen von Einheitsdateien in /etc/systemd

In diesem Schritt werden Sie erkunden, wo systemd seine Einheiten-Konfigurationsdateien speichert und wie Sie deren Inhalt anzeigen können.

Systemd-Einheitsdateien (systemd unit files), die festlegen, wie Dienste und andere Ressourcen verwaltet werden, befinden sich normalerweise im Verzeichnis /etc/systemd/system/. In diesem Verzeichnis befinden sich Einheitsdateien, die vom Systemadministrator oder von Paketen installiert wurden.

Lassen Sie uns in dieses Verzeichnis navigieren und seinen Inhalt auflisten.

Öffnen Sie Ihr Terminal, wenn es noch nicht geöffnet ist.

Zunächst ändern Sie Ihr aktuelles Verzeichnis in /etc/systemd/system/ mit dem Befehl cd:

cd /etc/systemd/system/

Jetzt listen Sie die Dateien in diesem Verzeichnis mit dem Befehl ls auf:

ls

Sie werden eine Liste von .service-, .target- und anderen Einheitsdateien sehen. Diese Dateien enthalten die Anweisungen für systemd, wie jede Einheit zu behandeln ist.

Lassen Sie uns den Inhalt der ssh.service-Datei mit dem Befehl cat untersuchen. Denken Sie daran, dass Sie sich derzeit im Verzeichnis /etc/systemd/system/ befinden, sodass Sie sich direkt auf die Datei über ihren Namen beziehen können.

cat ssh.service

Sie werden den Inhalt der ssh.service-Datei sehen. Diese Datei ist eine einfache Textdatei mit verschiedenen Abschnitten und Direktiven, die systemd sagen, wie der SSH-Dienst gestartet, gestoppt und verwaltet werden soll.

Beispielsweise könnten Sie Abschnitte wie [Unit], [Service] und [Install] sehen.

  • Der [Unit]-Abschnitt enthält allgemeine Informationen über die Einheit und ihre Abhängigkeiten.
  • Der [Service]-Abschnitt definiert die Befehle, die ausgeführt werden müssen, um den Dienst zu starten und zu stoppen.
  • Der [Install]-Abschnitt enthält Informationen darüber, wie die Einheit installiert und aktiviert werden soll.

Das Verständnis der Struktur und des Inhalts dieser Einheitsdateien ist der Schlüssel für die fortgeschrittene Systemadministration mit systemd. Obwohl die Details komplex sein können, ist es ein guter Anfang, einfach zu wissen, wo man sie findet und wie man sie anzeigt.

Sie können less anstelle von cat verwenden, um den Dateiinhalt seitenweise anzuzeigen, was für größere Dateien hilfreich ist:

less ssh.service

Drücken Sie q, um less zu beenden.

Klicken Sie auf Weiter, um dieses Lab abzuschließen.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie überprüfen können, ob eine systemd-Einheit (systemd unit) so konfiguriert ist, dass sie automatisch beim Booten startet, indem Sie den Befehl systemctl is-enabled verwenden. Sie haben dies geübt, indem Sie den Status der Dienste ssh und apache2 überprüft haben und verstanden haben, dass "enabled" bedeutet, dass die Einheit beim Booten startet, während "disabled" bedeutet, dass sie es nicht tut.

Sie haben auch gelernt, wie Sie aktive systemd-Einheiten mit dem Befehl systemctl list-units auflisten können, der einen umfassenderen Überblick über die derzeit laufenden oder geladenen Einheiten auf dem System bietet. Schließlich haben Sie untersucht, wie Sie die Konfigurationsdateien für systemd-Einheiten im Verzeichnis /etc/systemd anzeigen können und so Einblicke in die Definition und Konfiguration von Einheiten gewonnen.