Getty Images/iStockphoto
20 systemctl-Befehle für System- und Servicemanagement
Linux-Admins überwachen mehr Systeme als je zuvor. Die Verwaltung von System- und Dienstkonfigurationen kann herausfordernd sein. Der Befehl systemctl vereinfacht diese Aufgaben.
Ein effizientes System- und Servicemanagement ist entscheidend, um Kundenzufriedenheit und eine reibungslose Servicebereitstellung sicherzustellen. Der Linux-Befehl systemctl optimiert diese Verwaltungsaufgaben für Administratoren.
Immer mehr Linux-Administratoren arbeiten in Cloud-Umgebungen und müssen verschiedene Aufgaben der System- und Dienstverwaltung erledigen. Der Befehl systemctl dient zur Verwaltung von System- und Dienstkonfigurationen und ermöglicht es Administratoren, das Betriebssystem zu verwalten und Dienstkonfigurationen zu steuern. Darüber hinaus ist systemctl nützlich für die Fehlerbehebung und die grundlegende Leistungsoptimierung.
Dieser Artikel stellt 20 der häufigsten Verwendungszwecke von systemctl vor und hilft Ihnen, dessen Funktionalität zu verstehen und Ihr Wissen auf wichtige Konfigurationsaufgaben anzuwenden.
Eine kurze Syntax-Übersicht
Werfen wir zunächst einen Blick darauf, wie man den Befehl systemctl benutzt. Die Syntax ist wie folgt:
systemctl Unterbefehl Argument
Wollen Sie einen Service neu starten, führen Sie folgenden Befehl aus:
systemctl restart sshd
In diesem Beispiel lautet der Unterbefehl, der auch als Parameter bezeichnet wird, restart. Das Argument ist der Servicenamen, in diesem Fall sshd (SSH). Zu den gängigen Parametern gehören start, stop, restart und status.
Einige Parameter akzeptieren zusätzliche Optionen. Sie können beispielsweise den Parameter enable angeben und dann die Option --now hinzufügen, um einen sofortigen Start zu veranlassen. Dadurch können Sie die Verwendung des separaten Befehls systemctl start {service-name} überspringen.
Es gibt viele systemctl-Parameter, von denen dieser Artikel nur einige wenige behandelt. Um alle verfügbaren Unterbefehle anzuzeigen, probieren Sie folgenden Trick aus: Geben Sie systemctl ein, drücken Sie einmal die Leertaste und dann zweimal die Tabulatortaste. Dies ist die normale Tabulator-Vervollständigung von Bash. So wird die vollständige Liste der Unterbefehle oder Parameter angezeigt.
Der Befehl systemctl ist für Linux-Administratoren, die für System- und Dienstverwaltungsaufgaben verantwortlich sind, von entscheidender Bedeutung.
20 Verwendungsmöglichkeiten des Befehls systemctl
In diesem Zusammenhang steht System-Management für Konfiguration des Betriebssystems. Sprechen wir von systemctl, beinhaltet das auch Optionen für Start und Herunterfahren des Systems.
1. Einen Service starten
Eine häufige Aufgabe für Administratoren ist es, Services neu zu starten. Sobald Administratoren eine Konfigurationsdatei ändern, müssen sie fast immer den dazugehörigen Service neu starten, damit er die Konfigurationsdatei auslesen und die Änderungen übernehmen kann.
Der Befehl systemctl startet einen Service manuell mit diesem Befehl:
systemctl start {Service-Name}
2. Einen Service stoppen
Wollen Sie einen Service manuell mit systemctl stoppen, führen Sie diesen Befehl aus:
systmctl stop {Service-Name}
3. Einen Service neu starten
Anstatt einen Service manuell zu stoppen und zu starten, können Sie den Unterbefehl restart benutzen.
systemctl restart {Service-Name}
4. Das System herunterfahren
Um das System über die dafür zuständige Schnittstelle (Advanced Configuration and Power Interface) herunterzufahren, führen Sie diesen Befehl aus:
systemctl poweroff
5. Das System neu starten
Zwei wichtige Funktionen von systemctl sind der Neustart und das Herunterfahren des Systems. Um neu zu starten, führen Sie diesen Befehl aus:
systemctl reboot
6. Die Standardschnittstelle anzeigen
Es ist üblich, dass Linux-Server mit der CLI starten. In der systemd-Terminologie entspricht dies dem Modus multi-user.target. Manchmal bevorzugen Administratoren jedoch die GUI (graphical.target).
Den momentanen Standard können Sie sich wie folgt anzeigen lassen:
systemctl get-default
7. Die Standardschnittstelle auf die GUI umstellen
Um die aktuelle Standardeinstellung von multi-user.target (CLI) auf graphical.target (GUI) target zu ändern, geben Sie Folgendes ein:
systemctl set-default graphical.target
8. Zum multi-user.target wechseln
Um zu multi-user.target zu wechseln, ohne den Standard graphical.target zu ändern, führen Sie folgenden Befehl aus:
systemctl isolate multi-user.target
9. In den Rescue-Modus wechseln
Um in den Rescue-Modus (Rettungsmodus) für Problemlösungen zu wechseln, führen Sie diesen Befehl aus:
systemctl rescue
10. Den Servicestatus anzeigen
Den Status von Diensten können Sie auf verschiedene Weise anzeigen. In einigen Fällen möchten Administratoren Informationen zu allen Diensten anzeigen, in anderen Fällen wollen eventuell nur einen einzelnen Dienst verwalten. In beiden Fällen kann systemctl helfen.
Um den Status aller Dienste anzuzeigen, geben Sie Folgendes ein:
systemctl list-units --type=service
11. Die Services nach Status auflisten
Mit diesem Befehl können Sie Services nach Status auflisten:
systemctl list-units --type=service --state=active
Mögliche Werte für --state= sind running, stopped, enabled, disabled und failed.
systemctl list-units --failed
12. Einen Service am Start hindern
Ein gestoppte oder deaktivierter Service lässt sich trotzdem starten, wenn das von einem anderen Service ausgeht. Möchten Sie einen Service komplett an einem Start hindern, benutzen Sie den Unterbefehl mask. Damit wird die Service-Konfiguration mit /dev/null verknüpft.
systemctl mask {Service-Name}
13. Einen Service aktivieren
Einen Service zu starten und zu stoppen gilt nur für die momentane Laufzeit. Was ist aber, wenn Administratoren einen Service beim Booten des Systems starten wollen? Dafür ist enable zuständig:
systemctl enable {Service-Name}
14. Einen Service deaktivieren
Äquivalent dazu können Administratoren einen Service konfigurieren, dass er nicht beim Booten des Systems startet. Mit diesem Befehl deaktivieren Sie den Service:
systemctl disable {Service-Name}
15. Den Aktiven Status überprüfen
Mit dem Befehl systemctl überprüfen Sie den Status eines Services und den Boot-Status. Verwenden Sie nachfolgenden Befehl:
systemctl is-active {Service-Name}
16. Den Status aktiv überprüfen
Bei systemctl steht ihnen auch der folgende Befehl zur Verfügung, um den Status eines bestimmten Services abzufragen:
systemctl is-enabled {Service-Name}
17. Einen Service mit Signal 15 stoppen
Mit dem Unterbefehl kill können Sie Services stoppen. Sie sollten allerdings beachten, dass es sich damit nicht um die beste Option handelt. Verwenden Sie den Unterbefehl stop, sofern das möglich ist. Per Standard schickt systemctl kill ein Signal 15 oder SIGTERM 15, das beim System ein kill anfordert und dem System ermöglicht, sich selbst zu bereinigen.
Hier ist ein kill-Beispiel für Signal 15:
systemctl kill {Service-Name}
18. Einen Service mit Signal 9 abschießen
Administratoren können das System anweisen, einen Service sofort zu stoppen, indem sie mit folgendem Befehl ein Signal 9 senden:
systemctl kill -s 9 {Service-Name}
19. Services analysieren
Möglicherweise möchten Sie den Befehl systemd-analyze in Verwaltungsszenarien von systemctl einbinden. Obwohl es sich hierbei um einen anderen Befehl handelt, steht er dennoch im Zusammenhang mit der Dienstverwaltung.
Der grundlegende Befehl systemd-analyze gibt die Systemstartzeit an und unterteilt sie in die Zeit, die der Kernel zum Laden benötigte, bevor er in den Userspace wechselte, und die Zeit, die die Userspace-Komponenten zum Laden benötigten. Dies ist eine grundlegende Messgröße für die Startzeit.
systemd-analyze
20. Die Startzeiten der Services anzeigen
Bei den Services ist es noch nützlicher, wenn Sie den Befehl systemd-analyze nach der Startzeit filtern. Mit nachfolgendem Befehl sehen Sie die Startzeiten der Services:
systemd-analyze blame
Beachten Sie, dass einige Services verzögert starten, weil sie auf andere warten. Dennoch finden Sie auf diese Weise nützliche Informationen, welche Services die Startzeit des Systems verlangsamen.
Fazit
Heutzutage verwalten Administratoren mehr lokale und in der Cloud gehostete Linux-Systeme als je zuvor. Service-Management und -Überwachung sind entscheidend, um eine zeitnahe Bereitstellung von Ressourcen für die Nutzer zu gewährleisten. Der Befehl systemctl ist ein wichtiges Verwaltungstool, das wesentliche Systemkonfigurationsaufgaben sowie das Service-Management ermöglicht. Diese Elemente bilden den Kern der Funktion jedes Linux-Systems, sowohl in lokalen als auch in Cloud-Bereitstellungen.
Nutzen Sie die folgenden Best Practices, um den Befehl systemctl optimal zu nutzen:
- Führen Sie systemctl-Befehle mit sudo-Rechteeskalation aus.
- Starten Sie Dienste nach jeder Änderung der Konfigurationsdatei neu.
- Verwenden Sie den Befehl systemctl status {servicename} zur Fehlerbehebung, Konfigurationsprüfung und Überprüfung der Dienstfunktionalität.
- Deaktivieren Sie nicht benötigte Dienste, um die Angriffsfläche des Systems zu verringern.
- Maskieren Sie nicht benötigte Dienste, um zu verhindern, dass sie versehentlich von anderen Prozessen oder Benutzern gestartet werden. So sorgen Sie für eine sicherere und kontrolliertere Konfiguration.
- Verwenden Sie den Befehl systemctl --failed, um fehlerhafte Einheiten zu identifizieren und Fehler zu beheben.
Die Verwaltung von System- und Dienstkonfigurationen ist eine wichtige Fähigkeit für jeden Linux-Administrator.