- 1 1. Einführung
- 2 2. So zeigen Sie eine Liste von Diensten mit systemctl an
- 3 3. Grundlegende Dienstverwaltung mit systemctl
- 4 4. Nützliche systemctl-Optionen und erweiterte Techniken
- 5 5. Häufige Probleme und Fehlersuche
- 6 6. Zusammenfassung
- 7 7. Häufig gestellte Fragen (FAQ)
- 7.1 Q1. Was ist der Unterschied zwischen systemctl und dem Befehl service?
- 7.2 Q2. Was ist der Unterschied zwischen list-units und list-unit-files?
- 7.3 Q3. Können Dienste im statischen Zustand gestartet werden?
- 7.4 Q4. Ein Dienst ist maskiert und kann nicht gestartet werden. Was soll ich tun?
- 7.5 Q5. Gibt es eine GUI‑Methode, um den Dienststatus anzuzeigen?
- 7.6 Q6. Wo sollte ich benutzerdefinierte Unit-Dateien ablegen?
1. Einführung
Beim Einsatz von Linux gibt es viele Situationen, in denen Sie den Status von Diensten überprüfen oder eine Liste laufender Prozesse anzeigen möchten. In solchen Fällen ist der Befehl systemctl äußerst nützlich.
Dieser Befehl funktioniert mit systemd, dem Startsystem und Dienstmanager, der in modernen Linux-Distributionen verwendet wird. Er bietet eine breite Palette von Funktionen, einschließlich der Überprüfung des Dienststatus (Units), des Startens, Stoppens, Neustartens von Diensten und der Anzeige von Dienstlisten.
Aus der Perspektive einer „systemctl-Dienstliste“ können Sie nicht nur aktive Dienste anzeigen, sondern auch deaktivierte Dienste und solche, die für den automatischen Start konfiguriert sind, was Ihnen ermöglicht, die Gesamtsystemkonfiguration aus mehreren Blickwinkeln zu verstehen.
Dieses Kapitel erklärt kurz, was systemctl ist, und gibt einen Überblick darüber, was Sie in diesem Artikel lernen werden.
Was ist systemctl?
systemctl ist das Standardwerkzeug zur Steuerung und Überprüfung verschiedener „Units“ wie Dienste, Ziele und Mount-Punkte in systemd-basierten Linux-Distributionen.
Es wird beispielsweise verwendet, um Dienste wie Apache (httpd) und SSH zu starten oder zu stoppen sowie ihren Status in Listenform anzuzeigen.
Die Beziehung zwischen systemd und systemctl
systemd ist der Kernmechanismus, der für Linux-Startprozesse und Dienstverwaltung verantwortlich ist und ältere Systeme wie SysVinit und Upstart ersetzt. Das Kommandozeilenwerkzeug, das zur Interaktion mit systemd verwendet wird, ist systemctl.
Mit anderen Worten: Wenn systemd das Kommandozentrum ist, fungiert systemctl als Bediener, der Anweisungen erteilt.
Was Sie in diesem Artikel lernen werden
Dieser Artikel beantwortet die folgenden Fragen:
- Wie können Sie eine Liste der derzeit laufenden Dienste anzeigen?
- Wie zeigen Sie alle Dienste an, einschließlich inaktiver?
- Wie können Sie überprüfen, ob ein Dienst beim Booten automatisch startet?
- Wie interpretieren Sie die Ausgabe von Dienstlisten?
Um Klarheit für Linux-Anfänger zu gewährleisten, werden Befehlsbeispiele und Erklärungen der Ausgabe detailliert bereitgestellt.
2. So zeigen Sie eine Liste von Diensten mit systemctl an
In der Linux-Systemadministration ist es äußerst wichtig, schnell die Liste der Dienste zu verstehen. Mit dem Befehl systemctl können Sie leicht aktive Dienste, inaktive Dienste und Startkonfigurationseinstellungen überprüfen.
Dieser Abschnitt erklärt Methoden zur Auflistung von Diensten aus den folgenden drei Perspektiven:
- Liste aktiver Dienste
- Liste aller Dienste (einschließlich inaktiver)
- Liste von Dienst-Unit-Dateien (einschließlich Start-Einstellungen)
2.1 Anzeigen einer Liste der derzeit aktiven Dienste
Um Dienste zu überprüfen, die derzeit laufen, verwenden Sie den folgenden Befehl:
systemctl list-units --type=service
Dieser Befehl zeigt eine Liste aktiver Dienste an. Die Ausgabe umfasst die folgenden Felder:
| Field | Description |
|---|---|
| UNIT | Service name (e.g., ssh.service) |
| LOAD | Whether the unit file is loaded |
| ACTIVE | Service state (e.g., active, inactive, failed) |
| SUB | More detailed status (e.g., running, exited, dead) |
| DESCRIPTION | Service description |
Diese Informationen ermöglichen es Ihnen, beispielsweise festzustellen, ob nginx läuft oder welche Dienste derzeit aktiv sind.
2.2 Anzeigen aller Dienste einschließlich inaktiver
Standardmäßig zeigt list-units nur aktive Dienste an. Um inaktive Dienste einzuschließen, fügen Sie die Option --all hinzu.
systemctl list-units --type=service --all
Dies zeigt inaktive Dienste und solche an, die noch nie gestartet wurden.
Sie können die Ergebnisse weiter nach Dienstzustand filtern, indem Sie die Option --state= verwenden:
systemctl list-units --type=service --state=inactive
Dies ist nützlich, wenn Sie nur gestoppte Dienste anzeigen möchten.
2.3 Anzeigen einer Liste von Dienst-Unit-Dateien
Um zu überprüfen, welche Dienste beim Booten aktiviert oder deaktiviert sind, verwenden Sie den folgenden Befehl:
systemctl list-unit-files --type=service
Dieser Befehl zeigt alle Dienst-Unit-Dateien zusammen mit ihrem aktivierten oder deaktivierten Status an.
| STATE | Description |
|---|---|
| enabled | Automatically starts at boot |
| disabled | Does not start automatically |
| static | Cannot be enabled or disabled manually |
| masked | Explicitly disabled and cannot be started |
Diese Liste hilft Ihnen, visuell zu verstehen, welche Dienste beim Booten starten, und fehlerhaft maskierte Dienste zu identifizieren.
3. Grundlegende Dienstverwaltung mit systemctl
Der Befehl systemctl ermöglicht es Ihnen, Dienste zu starten, zu stoppen, neu zu starten und das Startverhalten zu konfigurieren.
3.1 Einen Dienst starten
sudo systemctl start service-name
Beispiel:
sudo systemctl start httpd.service
3.2 Dienst stoppen
sudo systemctl stop service-name
Beispiel:
sudo systemctl stop sshd.service
3.3 Dienst neu starten
sudo systemctl restart service-name
Beispiel:
sudo systemctl restart nginx.service
3.4 Dienststatus prüfen
systemctl status service-name
Beispiel:
systemctl status mysql.service
3.5 Automatischen Start aktivieren
sudo systemctl enable service-name
Beispiel:
sudo systemctl enable docker.service
3.6 Automatischen Start deaktivieren
sudo systemctl disable service-name
Beispiel:
sudo systemctl disable cups.service
3.7 Startstatus prüfen
systemctl is-enabled service-name
enabled
4. Nützliche systemctl-Optionen und erweiterte Techniken
4.1 Auflisten von Dienstabhängigkeiten
systemctl list-dependencies service-name
4.2 Anzeigen des Inhalts von Unit-Dateien
systemctl cat service-name

4.3 Neuladen von Unit-Dateien
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
4.4 Anzeigen von Dienstprotokollen
journalctl -u service-name
5. Häufige Probleme und Fehlersuche
5.1 Wenn ein Dienst nicht startet
systemctl status service-name
journalctl -xe
5.2 Fehlermeldungen in der Statusausgabe verstehen
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
Active: failed (Result: exit-code)
5.3 Dienste, die sofort nach dem Starten stoppen
- Konfigurationsfehler
- Portkonflikte
- Fehlende Dateien oder Verzeichnisse
- Unzureichende Berechtigungen
5.4 Wenn ein Dienst maskiert ist
sudo systemctl unmask service-name
6. Zusammenfassung
Dienstverwaltung ist ein wesentlicher Bestandteil der Linux-Systemoperationen, und systemctl spielt eine zentrale Rolle beim Steuern und Verstehen von Systemdiensten.
7. Häufig gestellte Fragen (FAQ)
Dieser Abschnitt beantwortet gängige Fragen zu systemctl und der Dienstverwaltung.
Q1. Was ist der Unterschied zwischen systemctl und dem Befehl service?
A1.
systemctl ist ein Dienstverwaltungsbefehl, der für systemd‑basierte Systeme entwickelt wurde und das Standardwerkzeug der meisten modernen Linux‑Distributionen wie Ubuntu, CentOS und Fedora ist.
Im Gegensatz dazu wurde der Befehl service bei älteren SysVinit‑basierten Systemen verwendet. Obwohl er aus Kompatibilitätsgründen noch vorhanden sein kann, wird die Verwendung von systemctl in systemd‑Umgebungen dringend empfohlen.
Q2. Was ist der Unterschied zwischen list-units und list-unit-files?
A2.
list-unitszeigt derzeit geladene Units an, also Dienste, die laufen oder kürzlich verwendet wurden.list-unit-fileszeigt alle Unit‑Dateien und deren Aktivierungsstatus (enabled, disabled usw.) an. Kurz gesagt, das eine zeigt, was aktuell aktiv ist, das andere, wie die Dienste konfiguriert sind.
Q3. Können Dienste im statischen Zustand gestartet werden?
A3.
Ja, Dienste im static‑Zustand können manuell mit start gestartet werden. Sie können jedoch nicht für den automatischen Start beim Booten aktiviert werden.
Das liegt daran, dass statische Dienste dafür vorgesehen sind, als Abhängigkeiten anderer Units gestartet zu werden.
Q4. Ein Dienst ist maskiert und kann nicht gestartet werden. Was soll ich tun?
A4.
Ein masked‑Dienst ist vollständig deaktiviert und kann nicht gestartet werden. Um das Problem zu beheben, demaskieren Sie den Dienst mit dem folgenden Befehl:
sudo systemctl unmask service-name
Nach dem Demaskieren können Sie den Dienst wie gewohnt starten.
Q5. Gibt es eine GUI‑Methode, um den Dienststatus anzuzeigen?
A5.
Abhängig von der Distribution ermöglichen Werkzeuge wie gnome-system-monitor, KSysGuard oder Cockpit das Anzeigen des Dienststatus über eine grafische Oberfläche.
Für fortgeschrittene Vorgänge wie das Aktivieren oder Deaktivieren von Diensten beim Systemstart bleibt systemctl jedoch die zuverlässigste Methode.
Q6. Wo sollte ich benutzerdefinierte Unit-Dateien ablegen?
A6.
Benutzerdefinierte Unit-Dateien werden typischerweise in /etc/systemd/system/ abgelegt. Nach dem Bearbeiten oder Hinzufügen einer Unit-Datei sollte stets der folgende Befehl ausgeführt werden:
sudo systemctl daemon-reload
Sie können den Dienst dann wie gewohnt mit start oder enable verwalten.

