Ich höre viel über Daemons, die auf meinem Ubuntu-Computer laufen - was sind sie?
Kurz gesagt, ein Daemon ist ein Hintergrundprozess .
Daemons können normale Programme sein, die im Hintergrund ausgeführt werden. Die meisten werden jedoch erstellt, indem ein Prozess gestartet, gegabelt und der übergeordnete Prozess beendet wird.
Einen Prozess aufzuteilen bedeutet, eine exakte Kopie davon zu erstellen. Das übergeordnete Element dieses Prozesses ist jetzt , wenn das eigentliche übergeordnete Element sofort beendet wird, der Init- Prozess /sbin/init
, der auf jedem Unix-ähnlichen Betriebssystem als erstes gestartet wird. Jetzt wird der Prozess als Daemon bezeichnet, mit dem kein TTY verknüpft ist.
Hier ist ein Beispiel für einen Daemon in Python:
import sys, os, time
pid = os.fork()
# there now exist two processes
if pid > 0: # If this is the parent,
sys.exit(0) # quit.
# this is the background part:
time.sleep(5)
print "Hello, World!"
Eigentlich ist es noch keine. Sie müssten auch das aktuelle Arbeitsverzeichnis ändern, die Standardeingabe und -ausgabe auf Protokolldateien umstellen und so weiter. Sie können sich in diesem Wikipedia-Artikel über die blutigen Details informieren .
Wenn Sie das Beispiel ausführen, werden Sie feststellen, dass es nach zwei Sekunden gedruckt wird, obwohl der in der Befehlszeile gestartete Vorgang beendet wurde. Die Kopie dieses Prozesses wird jetzt von init ausgeführt.
/proc/*/fd
). Ein gut erzogener Daemon löst sich vollständig vom tty, indem er die Handles stdout, stderr und stdin übergibt.Wie Sie sehen können, die Daemon Schicht
quelle