Daemon (ausgesprochen „Diemen“, englisch für Dämon) ist die traditionelle Bezeichnung für einen Hintergrundprozess, der ohne Benutzerinteraktion dauerhaft läuft. Der Name geht auf die griechische Mythologie zurück — ähnlich einem hilfreichen Geist erledigt der Daemon Aufgaben unsichtbar im Hintergrund.
Was macht ein Daemon?
Ein Daemon wird beim Systemstart oder später automatisch gestartet und wartet im Hintergrund auf Ereignisse: eingehende Verbindungen, Dateiänderungen oder Zeitpläne. Typische Beispiele sind der Webserver, der SSH-Dienst, der Druckdienste-Spooler oder der Cron-Zeitplaner. Daemons haben in der Regel kein Terminal und keine grafische Oberfläche — sie kommunizieren über Netzwerk-Ports, Dateien oder Logs.
Daemon vs. Prozess
Jeder Daemon ist ein Prozess, aber nicht jeder Prozess ist ein Daemon. Ein normales Programm läuft als Prozess im Vordergrund und endet mit seiner Aufgabe. Ein Daemon dagegen ist bewusst vom Terminal gelöst („detached“), läuft als Kind des Init-Prozesses weiter und überlebt das Ausloggen des Benutzers. In der modernen Linux-Welt übernimmt das Systemd-System die typischen Daemon-Aufgaben: Dienste starten, überwachen und bei Abstürzen neu starten.
Die Namens-Endung
Viele Daemons erkennt man an der Endung -d im Namen: sshd (SSH-Dienst), httpd (Webserver), crond (Zeitplaner), mysqld (Datenbank). Das d steht dabei für Daemon. Bei Systemd-Diensten ist die Endung heute oft weggelassen — der Dienst heißt dann einfach ssh.service oder nginx.service.
Kontrolle über die Kommandozeile
Ohne grafische Oberfläche steuert man Daemons über das Terminal: Mit Shell-Befehlen wie systemctl status, systemctl start oder systemctl stop startet und stoppt man Dienste unter Systemd. Klassische Daemons lassen sich direkt mit service oder durch Skripte im Init-Verzeichnis verwalten. Daemons, die selbst im Vordergrund starten, werden oft mit dem Ampersand in den Hintergrund geschickt: mein-dienst &.
Verwandte Konzepte
Daemons sind Teil der Start- und Verwaltungskette des Systems: Das Init-System startet sie, der Kernel verwaltet sie als Prozesse, und das Logging übernimmt Systemd oder syslog.