Einführung
Willkommen in diesem praktischen Lab zur Linux-Servicemanagement. Dienste (Services) in Linux sind Hintergrundprozesse, die kritische Systemfunktionen wie Netzwerkkonnektivität, Protokollierung, Drucken und vieles mehr verwalten. Die effiziente Verwaltung dieser Dienste ist eine essentielle Fähigkeit für Linux-Administratoren.
In diesem Lab werden Sie lernen, wie Sie den Befehl systemctl verwenden, der Teil der systemd-Suite ist - dem Standard-Init-System und Dienstemanager für die meisten modernen Linux-Distributionen. Sie werden üben, den Dienststatus zu prüfen, Dienste zu starten und zu stoppen sowie das Verhalten der Dienste beim Systemstart zu konfigurieren.
Am Ende dieses Labs werden Sie die Grundlagen des Linux-Servicemanagements verstehen und in der Lage sein, Systemdienste in einer Linux-Umgebung effektiv zu steuern.
Verständnis und Prüfung des Systemdienststatus
In diesem Schritt werden Sie lernen, wie Sie den Status von Systemdiensten mit dem Befehl systemctl prüfen. Das Verständnis des Dienststatus ist der erste Schritt zur effektiven Dienstverwaltung.
Was sind Systemdienste?
Systemdienste (oder Daemons) sind Programme, die im Hintergrund laufen, um verschiedene Systemaufgaben auszuführen. Sie starten normalerweise beim Systemstart und laufen bis zum Herunterfahren des Systems. Beispiele sind Webserver, Datenbankserver, SSH-Server und Druckdienste.
Prüfung des Dienststatus
Beginnen wir damit, den Status des SSH-Dienstes (sshd) zu prüfen, der häufig für den Remotezugriff auf Linux-Systeme verwendet wird:
Öffnen Sie ein Terminal in der LabEx-VM-Umgebung. Sie sollten sich bereits im Standardverzeichnis befinden, das
/home/labex/projectist.Führen Sie den folgenden Befehl aus, um den Status des SSH-Dienstes zu prüfen:
systemctl status sshdSie sollten eine Ausgabe ähnlich der folgenden sehen:
● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2023-10-25 08:15:00 UTC; 1h 30min ago Docs: man:sshd(8) man:sshd_config(5) Process: 1234 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS) Main PID: 1235 (sshd) Tasks: 1 (limit: 4915) Memory: 5.6M CPU: 500ms CGroup: /system.slice/ssh.service └─1235 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startupsDiese Ausgabe liefert wichtige Informationen über den Dienst:
- Loaded: Zeigt an, ob der Dienst geladen ist und ob er beim Systemstart aktiviert ist
- Active: Zeigt an, ob der Dienst derzeit läuft
- Process/Main PID: Zeigt die Prozess-ID des Dienstes an
- Memory/CPU: Zeigt die Ressourcenauslastung an
- Logs: Aktuelle Protokolleinträge in Bezug auf den Dienst
Wenn Sie den Status eines anderen Dienstes prüfen müssen, können Sie
sshddurch den Namen dieses Dienstes ersetzen. Beispielsweise, um den Status des Apache-Webservers (falls installiert) zu prüfen:systemctl status apache2
Auflistung aller Dienste
Sie können alle Dienste auf Ihrem System mit dem folgenden Befehl auflisten:
Um alle aktiven Dienste aufzulisten:
systemctl list-units --type=service --state=activeDieser Befehl zeigt alle Dienste an, die derzeit auf Ihrem System aktiv sind.
Um alle Dienste unabhängig von ihrem Zustand aufzulisten:
systemctl list-units --type=service --all
Erstellung einer Dienstlisten-Datei
Jetzt erstellen wir eine Datei, um eine Liste aller laufenden Dienste auf dem System zu speichern:
Erstellen Sie eine Datei namens
services_list.txtim aktuellen Verzeichnis, indem Sie folgenden Befehl ausführen:systemctl list-units --type=service --state=running > ~/project/services_list.txtDieser Befehl führt
systemctl list-unitsaus und leitet die Ausgabe in eine Datei namensservices_list.txtin Ihrem Projektverzeichnis um.Überprüfen Sie, ob die Datei erstellt wurde und Daten enthält:
cat ~/project/services_list.txtSie sollten eine Liste aller laufenden Dienste auf Ihrem System sehen.
In diesem Schritt haben Sie gelernt, wie Sie den Status von Diensten prüfen und wie Sie eine Liste aller laufenden Dienste auf Ihrem System erstellen. Diese Informationen sind wertvoll, um zu verstehen, welche Dienste aktiv sind und wie sie konfiguriert sind.
Steuerung von Systemdiensten: Starten, Stoppen und Neustarten
In diesem Schritt werden Sie lernen, wie Sie Systemdienste starten, stoppen und neu starten. Diese Operationen sind für die Wartung von Diensten, die Fehlerbehebung und die Anwendung von Konfigurationsänderungen unerlässlich.
Starten und Stoppen von Diensten
Üben wir die Steuerung des SSH-Dienstes:
Prüfen Sie zunächst den aktuellen Status des SSH-Dienstes:
systemctl status sshdBeachten Sie, ob der Dienst derzeit aktiv oder inaktiv ist.
Stoppen Sie nun den SSH-Dienst:
sudo systemctl stop sshdDieser Befehl stoppt den Dienst sofort. Bei Erfolg gibt dieser Befehl keine Ausgabe zurück.
Überprüfen Sie, ob der Dienst gestoppt wurde:
systemctl status sshdDie Ausgabe sollte nun anzeigen, dass der Dienst "inactive (dead)" ist:
● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: inactive (dead) since Wed 2023-10-25 10:15:00 UTC; 5s agoStarten Sie den Dienst erneut:
sudo systemctl start sshdÜberprüfen Sie, ob der Dienst gestartet wurde:
systemctl status sshdDie Ausgabe sollte anzeigen, dass der Dienst wieder "active (running)" ist.
Neustarten von Diensten
Das Neustarten eines Dienstes ist eine häufige Operation, insbesondere nach Änderungen seiner Konfiguration:
Um den SSH-Dienst neu zu starten:
sudo systemctl restart sshdDieser Befehl stoppt und startet dann den Dienst.
Um den Neustart zu überprüfen, prüfen Sie den Dienststatus:
systemctl status sshdSchauen Sie sich die Zeile "Active" an, um zu sehen, wann der Dienst zuletzt gestartet wurde.
Erstellung einer Referenzdatei für Dienststeuerungsbefehle
Erstellen wir eine Referenzdatei mit den Befehlen, die Sie gelernt haben:
Erstellen Sie eine Datei namens
service_control.txtin Ihrem Projektverzeichnis:echo "Service Control Commands:" > ~/project/service_control.txt echo "Start a service: sudo systemctl start <service_name>" >> ~/project/service_control.txt echo "Stop a service: sudo systemctl stop <service_name>" >> ~/project/service_control.txt echo "Restart a service: sudo systemctl restart <service_name>" >> ~/project/service_control.txtÜberprüfen Sie den Inhalt der Datei:
cat ~/project/service_control.txt
In diesem Schritt haben Sie gelernt, wie Sie Dienste durch Starten, Stoppen und Neustarten steuern können. Diese Operationen sind grundlegend für die Verwaltung und Wartung von Diensten in Linux-Systemen.
Verwaltung des Dienststartverhaltens: Aktivieren und Deaktivieren
In diesem Schritt werden Sie lernen, wie Sie konfigurieren können, ob Dienste automatisch beim Systemstart gestartet werden. Dies ist wichtig, um sicherzustellen, dass erforderliche Dienste nach einem Systemneustart ohne manuelle Eingriffe verfügbar sind.
Verständnis der Dienststartkonfiguration
Dienste können so konfiguriert werden, dass sie automatisch beim Systemstart gestartet werden (aktiviert) oder dass sie manuell gestartet werden müssen (deaktiviert). Diese Konfiguration ist unabhängig vom aktuellen Laufzustand des Dienstes.
Prüfung, ob ein Dienst aktiviert ist
Um zu prüfen, ob der SSH-Dienst so konfiguriert ist, dass er beim Systemstart gestartet wird:
systemctl is-enabled sshdDie Ausgabe ist entweder "enabled" (wird beim Systemstart gestartet) oder "disabled" (wird nicht beim Systemstart gestartet).
Deaktivieren eines Dienstes
Wenn Sie einen Dienst deaktivieren, konfigurieren Sie ihn so, dass er nicht automatisch beim Systemstart gestartet wird:
Deaktivieren Sie den SSH-Dienst:
sudo systemctl disable sshdSie sollten eine Meldung sehen, die anzeigt, dass der Symlink entfernt wurde:
Removed /etc/systemd/system/multi-user.target.wants/ssh.service.Überprüfen Sie, ob der Dienst jetzt deaktiviert ist:
systemctl is-enabled sshdDie Ausgabe sollte "disabled" sein.
Beachten Sie, dass das Deaktivieren eines Dienstes ihn nicht stoppt, wenn er derzeit läuft. Prüfen Sie den aktuellen Status:
systemctl status sshdAuch wenn der Dienst jetzt für den nächsten Systemstart deaktiviert ist, kann er immer noch aktiv sein.
Aktivieren eines Dienstes
Wenn Sie einen Dienst aktivieren, konfigurieren Sie ihn so, dass er automatisch beim Systemstart gestartet wird:
Aktivieren Sie den SSH-Dienst erneut:
sudo systemctl enable sshdSie sollten eine Meldung sehen, die anzeigt, dass der Symlink erstellt wurde:
Created symlink /etc/systemd/system/multi-user.target.wants/ssh.service → /lib/systemd/system/ssh.service.Überprüfen Sie, ob der Dienst jetzt aktiviert ist:
systemctl is-enabled sshdDie Ausgabe sollte "enabled" sein.
Kombinierte Befehle
Sie können auch das Aktivieren/Deaktivieren mit dem Starten/Stoppen in einem einzigen Befehl kombinieren:
Um einen Dienst in einem Befehl zu deaktivieren und zu stoppen:
sudo systemctl disable --now sshdUm einen Dienst in einem Befehl zu aktivieren und zu starten:
sudo systemctl enable --now sshd
Erstellung einer Referenzdatei für die Dienststartkonfiguration
Erstellen wir eine Referenzdatei mit den Befehlen, die Sie gelernt haben:
Erstellen Sie eine Datei namens
service_boot.txtin Ihrem Projektverzeichnis:echo "Service Boot Configuration Commands:" > ~/project/service_boot.txt echo "Check if a service is enabled: systemctl is-enabled <service_name>" >> ~/project/service_boot.txt echo "Enable a service to start at boot: sudo systemctl enable <service_name>" >> ~/project/service_boot.txt echo "Disable a service from starting at boot: sudo systemctl disable <service_name>" >> ~/project/service_boot.txt echo "Enable and immediately start a service: sudo systemctl enable --now <service_name>" >> ~/project/service_boot.txt echo "Disable and immediately stop a service: sudo systemctl disable --now <service_name>" >> ~/project/service_boot.txtÜberprüfen Sie den Inhalt der Datei:
cat ~/project/service_boot.txt
In diesem Schritt haben Sie gelernt, wie Sie das Startverhalten von Diensten verwalten können, indem Sie Dienste aktivieren und deaktivieren. Dies ist entscheidend für die Konfiguration, welche Dienste automatisch beim Systemstart gestartet werden, um sicherzustellen, dass notwendige Dienste verfügbar sind, während unnötige Dienste keine Ressourcen verbrauchen.
Zusammenfassung
In diesem Lab haben Sie die Grundlagen der Linux-Dienstverwaltung mit dem Befehl systemctl gelernt. Sie haben essentielle Fähigkeiten geübt, die jeder Linux-Administrator kennen sollte:
Prüfung des Dienststatus: Sie haben gelernt, wie Sie den aktuellen Zustand von Diensten anzeigen können, was für die Überwachung und Fehlerbehebung von entscheidender Bedeutung ist.
Steuerung von Diensten: Sie haben das Starten, Stoppen und Neustarten von Diensten geübt, was grundlegende Operationen für die Wartung und Konfigurationsänderungen sind.
Verwaltung des Startverhaltens: Sie haben gelernt, wie Sie Dienste beim Systemstart aktivieren und deaktivieren können, um zu steuern, welche Dienste nach einem Neustart automatisch ausgeführt werden.
Diese Fähigkeiten bilden die Grundlage für eine effektive Dienstverwaltung in Linux-Umgebungen. Wenn Sie weiterhin mit Linux-Systemen arbeiten, werden Sie diese Befehle für die Aufrechterhaltung der Systemstabilität und -leistung als unerlässlich erachten.
Denken Sie daran, dass eine ordnungsgemäße Dienstverwaltung für die System-Sicherheit, die Ressourcenoptimierung und die Gewährleistung der Verfügbarkeit erforderlicher Funktionen von entscheidender Bedeutung ist. Das Wissen, das Sie in diesem Lab erworben haben, wird als Baustein für fortgeschrittenere Linux-Administrationsaufgaben dienen.



