Verwaltung des Startverhaltens von Diensten: 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 sshd
Die 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 sshd
Sie 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 sshd
Die 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 sshd
Auch 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 sshd
Sie 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 sshd
Die 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 sshd
-
Um 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.txt
in 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.