Daemon und Dienste in Linux- Unterschied?
Was ist der Unterschied von daemons und Diensten in Linux?
Daemons sind Prozesse, die im Hintergrund laufen nicht interaktiv sind. Sie erledigen bestimmte Aufgaben zu festgelegten Zeiten oder reagieren auf bestimmte Ereignisse.
- Und Dienste? Sind das auch Daemons oder sind es Prozesse, die sowohl im Hintergrund als auch im Vordergrund laufen könnten? Sind es Prozesse, die Anfragen für andere Programme entgegennehmen?
- Daemons und Dienste sind aber immer ein Prozess?
2 Antworten
Ein daemon ist ein Hintergrundprozess der Dienste bereitstellt. Man kann ihn auch Hintergrunddienst nennen.
Dienst bezeichnet dabei eher die Funktionalität/Serviceleistung die dargeboten wird.
Nimm mal DNS (Domain Name System). Dieses bietet den Dienst der Namensauflösungen an. Der Prozess, der dann im Hintergrund läuft und diesen Dienst anbietet wäre dann ein daemon, beispielsweise named (der eigentliche daemon-Prozess von BIND).
- Dienste und daemons sind dann quasi beides Programme mit einem anderen Verwendungszweck?
- Aber kann ein Dienst auch ein daemon sein oder ist ein Dienst immer im Vordergrund und wird von einem daemon unterstützt?
Kann ein Dienst auch einfach im Hintergrund laufen, ohne als daemon zu laufen und wird von einem daemon unterstützt?
Ja, das kann. Z.B. indem du das Programm dafür auf einem entfernten Rechner in einem terminal multiplexer (tmux, screen) startest, und dann deine Verbindung zum entfernten Rechner unterbrichst.
Der Dienst wird weiter laufen, verfügbar sein, obwohl er seiner Ansicht nach in einem Terminal läuft.
Wenn ein daemon einen Prozess spawned und via pipe(s) o.ä. mit ihm kommuniziert, dann läuft dieser Prozess im Hintergrund, ohne selbst ein daemonize() ausgeführt zu haben.
Und natürlich kann er einen Dienst erbringen.
Einfaches Beispiel aus der Netzwerkwelt, ein MTA läuft als daemon, je nach Umständen startet er einen Prozess mit dem er via IPC kommuniziert und dieser Prozess filtert die Mail.
D.h. der Dienst MAilfilter wird realisiert, indem ein Prozess vom MTA im Hintergrund gestartet wird, der selbst kein daemon ist.
Die Begriffe können überlappend verwendet werden, wobei daemon eher ein Begriff mit Relevanz für Prozessmanagement ist, und Dienst sich mehr auf Netzwerkmanagement bezieht. Quasi zwei Sichten aus zwei Winkeln von etwas, was durch das gleiche repräsentiert werden kann.
Also streng genommen nicht das gleiche?
Ein Dienst kann ein Daemon sein, muss aber nicht?
Das ist richtig, ein Dienst muß nicht unbedingt ein daemon sein. Üblicherweise wird ein Dienst aber schon als daemon laufen.