Dienste sind im Wesentlichen Programme, die außerhalb der interaktiven Kontrolle der Systembenutzer im Hintergrund laufen, da ihnen eine Schnittstelle fehlt. Sie laufen im Hintergrund, um verwendet zu werden, wann immer sie benötigt werden.
Zu den allgemein bekannten Diensten gehören Mysql, ssh und Nginx. Unter Debian werden Dienste mit Systemd verwaltet, das System V ersetzt, um das System und seine Komponenten zu initialisieren, einschließlich der Dienste, die für das ordnungsgemäße Funktionieren des Betriebssystems entscheidend sind.
Einige der Dienste in Debian- und Ubuntu-basierten Versionen, die bei jedem Start ausgeführt werden, sind Start, Neustart, Stopp und Neuladen. Dieses Tutorial behandelt sie alle im Detail.
Systemd vs. Init
Linux-basierte Distributionen verwenden heutzutage systemd anstelle des guten alten init. In systemd können Sie Dienste mit dem Befehl systemctl verwalten, während Sie den Dienst in init mit den Dienstbefehlen verwalten.
Sie werden auch feststellen, dass Ihr Linux-System, in diesem Fall Debian, zwar systemd verwendet, aber dennoch die Flexibilität hat, den für Init-Systeme vorgesehenen Dienstbefehl zu verwenden. Dies liegt daran, dass die Dienstbefehle auf systemctl umleiten. Angenommen, es handelt sich um Abwärtskompatibilität, die von systemd eingeführt wurde, weil Sysadmins es gewohnt waren, den Dienstbefehl zu verwenden.
Dienste unter Debian 11 starten, stoppen und neu starten
Machen Sie sich keine Gedanken über die Verwaltung von Diensten, da dieser Artikel sowohl die Befehle systemctl als auch service abdeckt. Lassen Sie uns ohne Umschweife loslegen.
Methode 1:Verwenden von Systemctl
Der Befehl systemctl ist eine systemd-Daemon-Suite, die zum Verwalten von Linux-Diensten und -Daemons verwendet wird, die durch das letzte „d“ im Namen systemd dargestellt werden. Dieses „d“ entstand, weil die Unix-Daemons abwärtskompatibel mit SysV-Init-Skripten sind und mehrere Funktionen wie den parallelen Start von Systemdiensten beim Booten, die On-Demand-Aktivierung von Daemons oder eine auf Abhängigkeiten basierende Steuerlogik für Dienste bieten. Sein Ziel ist es, die Konfiguration und das allgemeine Verhalten aller Linux-basierten Distributionen zu vereinheitlichen und die alten Unix SystemV- und BSD-Init-Systeme zu ersetzen.
1. Alle Dienste auflisten
Bevor wir uns mit dem Starten, Stoppen und Neustarten von Diensten auf unserem Debian-Rechner mit dem Befehl systemctl befassen, müssen wir zunächst die auf Ihrem System verfügbaren Dienste kennen. Daher verwenden wir den list-Befehl, um alle Dienste in unserem Linux-System aufzulisten:
systemctl list-unit-files --type service -all
Wie zu sehen ist, gibt der obige Befehl die Art des Dienstes und seinen Status aus. Der Wert eines Dienststatus kann entweder aktiviert, maskiert (inaktiv, bis die Maske deaktiviert wird), deaktiviert, generiert oder statisch sein.
Um nur laufende Dienste auszugeben, können Sie den systemctl-Befehl mit dem grep-Befehl kombinieren, und Sie sollten loslegen.
sudo systemctl | grep running
Der Befehl systemctl wird zum Starten, Überprüfen des Status, Stoppen und Neustarten von Diensten gemäß den Syntaxen in der folgenden Tabelle verwendet:
AKTION | BEFEHL |
---|---|
Dienststatus prüfen | Systemctl-Status (Dienstname) |
Starten Sie einen Dienst | systemctl start (Dienstname) |
Dienst stoppen | sudo systemctl stop (Dienstname) |
Starten Sie einen Dienst neu | sudo systemctl restart(Dienstname) |
2. Starten Sie einen Dienst
Um einen Dienst mit dem Befehl systemctl zu starten, verwenden Sie die Option start. Dieser Option folgt dann der Name des Dienstes, den Sie starten möchten. Verwenden Sie daher die folgende Syntax:
systemctl start (ServiceName)
Danach ersetzen Sie (ServiceName) durch den tatsächlichen Dienst, den Sie starten möchten, wie in unserem Fall, wir möchten den vsftpd-Dienst starten.
sudo systemctl start vsftpd.service
Wie oben zu sehen ist, ist der Dienst betriebsbereit.
3. Status eines Dienstes
Wie bereits in der obigen Tabelle zu sehen, lautet die Syntax zum Überprüfen des Status des Dienstes wie folgt:
systemctl status (ServiceName)
Daher verwenden wir die Syntax, während wir (ServiceName) durch geeignete Werte ersetzen. Um den Status des vsftpd-Dienstes zu überprüfen, können Sie den folgenden Befehl eingeben:
sudo systemctl status vsftpd.service
In der Momentaufnahme unten sollten Sie sehen, dass der ssh-Dienst aktiv ist und ordnungsgemäß funktioniert
4. Beenden eines Dienstes
Lassen Sie uns nun besprechen, wie der Dienst beendet werden kann. Dazu verwenden wir die Option stop des Befehls systemctl, gefolgt vom Namen des Dienstes, den Sie stoppen möchten. Das Stoppen eines Dienstes folgt der folgenden Syntax:
sudo systemctl stop (ServiceName)
Um beispielsweise den derzeit ausgeführten vsftpd-Dienst zu stoppen, führen Sie den folgenden Befehl aus:
sudo systemctl stop vsftpd.service
Nachdem Sie den Stoppbefehl ausgeführt haben, sollten Sie sehen, dass die zuvor aktive Schaltfläche inaktiv (tot) geschaltet wurde.
5. Dienst neu starten
Um einen Dienst mit dem Befehl systemctl neu zu starten, verwenden wir die Option „restart“. Ähnlich wie in den vorherigen Beispielen folgt auf diese Option auch der Name des Dienstes, den Sie neu starten möchten, wie in der folgenden Syntax gezeigt:
sudo systemctl restart (ServiceName)
Ersetzen Sie dann (ServiceName) durch den tatsächlichen Dienst, den Sie neu starten möchten, in unserem Fall „vsftpd.“
sudo systemctl restart vsftpd.service
Und so werden Dienste mit Systemd neu gestartet.
Sie können diesen Link besuchen, um weitere Informationen zu Systemd zu erhalten.
Methode 2:Verwenden des Dienstbefehls
Der Befehl service verwaltet Dienste im Verzeichnis /etc/init.d, obwohl einige Distributionen den Befehl auf den zuvor erläuterten Befehl systemctl umleiten. Der Befehl service ist Teil des init-Daemons, der häufig in früheren Distributionen von Linux-Systemen verwendet wird, um Dienste zu verwalten.
Genau wie systemctl kann auch der Dienstbefehl verwendet werden, um den Status zu überprüfen, Dienste zu starten, neu zu starten und zu stoppen, indem die in der folgenden Tabelle beschriebene Syntax befolgt wird:
AKTION | BEFEHL |
---|---|
Starten Sie einen Dienst neu | systemctl (Dienstname) starten |
Dienststatus prüfen | Status des Sudo-Dienstes (ServiceName) |
Starten Sie einen Dienst | sudo-Dienst (ServiceName) starten |
Dienst stoppen | sudo-Dienst (ServiceName) stoppen |
Der folgende Abschnitt zeigt Beispiele für die Anwendung der Syntaxen in der obigen Tabelle
1. Dienst starten
Lassen Sie uns nun besprechen, wie ein Dienst gestartet wird. Um dies zu erreichen, verwenden wir die Startoption des Dienstbefehls. Diese Option kommt nach dem Namen des Dienstes, den Sie ausführen möchten. Hier ist die Syntax:
sudo service (ServiceName) start
Wenn wir beispielsweise einen Dienst namens ssh starten, ersetzen wir (ServiceName) durch den eigentlichen Dienst, der gestartet werden soll, wie in unserem Fall "vsftpd."
sudo service vsftpd start
2. Überprüfen Sie den Status eines Dienstes
Verwenden Sie die folgende Syntax, um den Status eines Dienstes zu überprüfen:
sudo service (ServiceName) status
Wenn wir zum Beispiel eine Statusprüfung eines Dienstes wie vsftpd mit dem Dienstbefehl durchführen wollen, müssen wir die Syntax (ServiceName) durch den Namen vsftpd ersetzen, wie unten gezeigt:
sudo service vsftpd status
3. Beenden eines Dienstes
Sehen wir uns nun an, wie der Dienst beendet wird. Dazu verwenden wir die Stop-Option, der der Name des Dienstes vorangestellt ist, den wir stoppen möchten. Hier ist die Syntax:
sudo service (ServiceName) stop
Ersetzen Sie danach (ServiceName) durch den tatsächlichen Dienst, den Sie stoppen möchten, wie in unserem Fall „vsftpd“:
sudo service vsftpd stop
Wie Sie sehen, zeigt der Dienst nach Ausführung des Befehls stop jetzt Inactive(dead) an, was bedeutet, dass er wie vorgesehen funktioniert.
4. Dienst neu starten
Lassen Sie uns die Neustartdienste mit dem Dienstbefehl ausprobieren, der der folgenden Syntax folgt:
sudo service (ServiceName) restart
Ersetzen:
sudo service vsftpd restart
Wie wir gesehen haben, funktionieren die Dienstbefehle wie gewünscht.
Außerdem können Sie den folgenden Befehl verwenden, um eine Dienstkonfiguration neu zu laden, ohne den Dienst selbst zu unterbrechen.
sudo service vsftpd reload
Sie können diesen Link besuchen, um mehr Einblick in den Dienstbefehl zu erhalten.
So aktivieren Sie einen Dienst beim Booten
Falls Sie ermöglichen möchten, dass ein Debian-Dienst gestartet wird, wenn das System bootet, verwenden Sie die folgende Syntax:
sudo systemctl enable SERVICE_NAME
Ersetzen:
sudo systemctl enable vsftpd.service
So deaktivieren Sie den Dienst beim Booten
Mit der folgenden Syntax können Sie auch verhindern, dass der Dienst während eines Systemstarts gestartet wird:
sudo systemctl disable SERVICE_NAME
Zum Beispiel:
sudo systemctl disable vsftpd.service
Abschluss
Dienste sind wichtige Komponenten jedes Geräts. Daher ist ihre Verwaltung ein Muss für jeden Benutzer auf Linux-Niveau. Dieser Leitfaden zeigt, dass die Verwaltung von Diensten ziemlich einfach ist und über verschiedene Methoden erfolgen kann. Denken Sie daran, dass die ideale und empfohlene Methode zum Ausführen der Aufgabe des Dienstes unter Linux der Befehl systemctl ist, den wir zuvor im ersten Abschnitt dieses Handbuchs erläutert haben. Andere Methoden wie der Umgang mit dem /etc/init.d-Verzeichnis sind obsolet.
Dieses Tutorial hat die Funktionen zum Starten, Neustarten, Beenden und Überprüfen des Dienststatus erklärt, aber das schränkt Sie nicht ein, zusätzliche Funktionen von ihren offiziellen Seiten zu lernen. Folgen Sie FOSS Linux für weitere Linux-bezogene Anleitungen.