Website-Suche

Verstehen von Services und Daemons in Linux


Wenn man mit Linux anfängt, kann man häufig auf die Begriffe „Services“ und „Daemons“ stoßen, die sich auf Hintergrundprozesse beziehen, die eine wichtige Rolle dabei spielen, das System reibungslos am Laufen zu halten, oft ohne dass eine direkte Benutzereingabe erforderlich ist.

Zu verstehen, wie diese Komponenten funktionieren, kann Ihnen helfen, Ihr System besser zu verwalten und häufige Probleme effizienter zu beheben. In diesem anfängerfreundlichen Überblick erklären wir, was Dienste und Daemons sind, wie sie innerhalb von Linux funktionieren und welche Werkzeuge zur Verfügung stehen, um sie effektiv zu steuern.

Was sind Dienste und Daemons in Linux?

Lassen Sie uns aufschlüsseln, was sie sind, wie sie sich unterscheiden und warum sie wichtig sind.

Was ist ein Dämon?

Ein Daemon (ausgesprochen DEE-muhn) ist ein Hintergrundprozess, der automatisch startet oder still im Hintergrund läuft, ohne dass eine Benutzerinteraktion erforderlich ist. Seine Aufgabe ist es, auf bestimmte Systemereignisse zu warten oder Routineaufgaben ruhig und konsistent zu erledigen.

Denken Sie an einen Daemon wie an einen immer aktiven persönlichen Assistenten, der niemals Aufsicht benötigt.

Hier sind einige gängige Beispiele:

  • sshd – Verarbeitet entfernte SSH-Anmeldungen über das Netzwerk.
  • httpd – Führt Ihren Webserver aus und liefert Websites und APIs.
  • crond – Verwaltet geplante Aufgaben (wie automatisierte Backups oder Wartungsskripte).

Konventionell enden die meisten Daemons in Linux mit dem Buchstaben d, der einfach für „Daemon“ steht.

Was ist ein Service?

Nun, während sich ein Daemon speziell auf einen Hintergrundprozess bezieht, ist der Begriff „Service“ in Linux etwas weiter gefasst.

Ein Dienst ist ein verwalteter Hintergrundprozess, der kontinuierlich wie ein Daemon laufen kann oder bedarfsgesteuert ausgelöst wird. Dienste bieten Funktionen wie Netzwerk, Drucken, Protokollierung, Firewalls und mehr.

Dienstleistungen können:

  • Beim Start automatisch starten.
  • Es kann vom Benutzer manuell gestartet oder gestoppt werden.
  • Laufen Sie beharrlich oder nur bei Bedarf.

Also, hier ist die wichtigste Erkenntnis:

Alle Daemons sind Dienste, aber nicht alle Dienste sind Daemons.

Zum Beispiel:

  • Ein Daemon wie sshd läuft die ganze Zeit und lauscht auf Verbindungen.
  • Aber ein Dienst wie ein Bluetooth-Scanner könnte nur laufen, wenn ein Bluetooth-Gerät erkannt wird, was ereignisgesteuert und nicht ständig aktiv ist.

Einige Dienste sind vorübergehend; sie starten, führen eine Aufgabe aus und stoppen:

  • Wie systemd-resolved, das DNS-Anfragen sofort verarbeitet.
  • Oder atd, das einmal geplante Jobs ausführt und dann beendet.

Diese Flexibilität ist ein Teil dessen, was Linux zu einem so leistungsstarken System macht; Sie führen nur das aus, was Sie brauchen, wann Sie es brauchen.

Wie Linux Dienste verwaltet: systemd und mehr

Wenn es um die Verwaltung von Diensten auf modernen Linux-Systemen geht, ist systemd der dominierende Akteur, der als Init-System fungiert, das der erste Prozess ist, der beim Systemstart gestartet wird – immer mit PID 1 versehen.

Sobald es läuft, übernimmt systemd die Aufgabe, jeden anderen Dienst und Daemon auf dem System zu starten und zu verwalten. Die meisten beliebten Linux-Distributionen wie Ubuntu, Fedora, Debian, CentOS und Arch Linux haben systemd aufgrund seiner Geschwindigkeit, Effizienz und seines breiten Funktionsumfangs als ihr Standard-Init-System übernommen.

Sie interagieren mit systemd hauptsächlich über den Befehl systemctl, der Ihnen die volle Kontrolle über Dienste wie Starten, Stoppen, Aktivieren, Deaktivieren, Überprüfen von Status und mehr gibt.

Während systemd der aktuelle Standard ist, ist es erwähnenswert, dass es auch andere Init-Systeme gibt, auf die man stoßen könnte, insbesondere bei älteren oder spezialisierten Distributionen.

  • SysVinit ist das traditionelle Init-System, das in älteren Linux-Versionen verwendet wird, mit einem einfacheren Ansatz, der das Ausführen von Skripten in /etc/init.d beinhaltete.
  • Upstart, einst von Ubuntu verwendet, zielte darauf ab, SysVinit mit ereignisgesteuerten Fähigkeiten zu verbessern, wurde jedoch weitgehend ersetzt.
  • Ein weiteres, das noch verwendet wird, ist OpenRC, ein leichtgewichtiges und einfaches Init-System, das in Distributionen wie Alpine Linux und Gentoo verwendet wird.

Das gesagt, wird sich dieser Leitfaden vollständig auf systemd konzentrieren, da dies das ist, was Sie in realen Linux-Umgebungen heutzutage am wahrscheinlichsten antreffen werden.

Verwaltung von Diensten mit systemctl

Der systemctl-Befehl ist Ihr Werkzeug der Wahl, um mit Diensten auf einem systemd-basierten Linux-System zu interagieren. Hier sind die gebräuchlichsten Aufgaben, die Sie kennen müssen.

Um den Status eines Dienstes zu überprüfen, verwenden Sie den folgenden Befehl, der Ihnen einen Überblick über den aktuellen Zustand des Dienstes gibt – ob er aktiv, inaktiv, fehlgeschlagen oder ausgeführt wird.

sudo systemctl status sshd

Um einen Dienst manuell zu starten, ist die Syntax einfach:

sudo systemctl start sshd

Um einen Dienst zu stoppen, führen Sie einfach aus:

sudo systemctl stop sshd

Um einen Dienst neu zu starten, führen Sie einfach aus:

sudo systemctl restart sshd

Um einen Dienst zu aktivieren, damit er beim Start startet, verwenden Sie:

sudo systemctl enable sshd

Andererseits, um einen Dienst am automatischen Start zu hindern, führen Sie aus:

sudo systemctl disable sshd

Um eine Liste aller derzeit aktiven Dienste zu sehen, können Sie Folgendes ausführen:

systemctl list-units --type=service

Wenn Sie eine umfassendere Liste möchten, einschließlich Dienste, die installiert, aber nicht ausgeführt werden, verwenden Sie:

systemctl list-unit-files --type=service

Bonus: Verwendung von ps, top und htop zur Anzeige von Daemons

Während Werkzeuge wie systemctl großartig zum Verwalten von Diensten sind, ist es manchmal hilfreich, direkt auf das Geschehen auf Prozessebene zu schauen, was besonders nützlich sein kann, wenn man bestätigen möchte, dass ein Daemon läuft, seine Ressourcennutzung überprüfen oder Leistungsprobleme beheben möchte.

Um zu beginnen, gibt Ihnen der Befehl ps einen Überblick über alle laufenden Prozesse.

ps aux

Dies zeigt eine detaillierte Liste aller aktiven Prozesse, einschließlich des Benutzers, unter dem sie ausgeführt werden, wie viel CPU und Speicher sie verwenden und den Befehl, der sie gestartet hat.

Wenn Sie nach einem bestimmten Daemon suchen, können Sie ps mit grep kombinieren, um die Ergebnisse zu filtern.

ps aux | grep sshd

Dieser Befehl hilft Ihnen, schnell herauszufinden, ob der SSH-Daemon läuft und wie sein aktueller Zustand ist.

ravi       17554  0.0  0.0   9144  2176 pts/0    S+   10:56   0:00 grep --color=auto sshd

Für eine Echtzeitansicht dessen, was auf Ihrem System passiert, können Sie top verwenden, das standardmäßig in fast jeder Linux-Distribution enthalten ist.

top

Wenn Sie etwas benutzerfreundlicheres und farbenfroheres möchten, versuchen Sie es mit htop, das eine fortgeschrittenere Alternative zu top ist. Im Gegensatz zu top ermöglicht htop das einfache Scrollen, Filtern und Sortieren von Prozessen mit den Pfeiltasten und Funktionstasten.

Sie müssen es möglicherweise zuerst installieren:

sudo apt install htop       # For Debian/Ubuntu
sudo yum install htop       # For CentOS/RHEL
sudo dnf install htop       # For Fedora

Einmal installiert, führen Sie htop aus und Sie haben eine viel interaktivere Möglichkeit, zu überprüfen, was unter der Haube läuft.

Schlussgedanken

Dienste und Daemonen stehen im Mittelpunkt jedes funktionierenden Linux-Systems, da sie kritische Hintergrundaufgaben wie die Verwaltung von SSH-Verbindungen, die Planung von Aufgaben, das Bereitstellen von Webinhalten, die Synchronisierung der Systemzeit und die Durchsetzung von Firewall-Regeln übernehmen.

Diese Komponenten arbeiten still im Hintergrund, um das System effizient und zuverlässig am Laufen zu halten. Zu verstehen, wie sie funktionieren und wie man sie effektiv verwaltet, ist ein wichtiger Teil dabei, in der Linux-Systemadministration kompetent zu werden.

Sobald Sie verstehen, wie man Dienste und Daemons effektiv verwaltet, werden Sie sich viel sicherer fühlen beim Navigieren und Steuern Ihres Linux-Systems.