Ich habe gelesen und verstanden, wie Sie einen Daemon-Prozess erstellen, aber nach allem, was ich gelesen habe, habe ich nie wirklich verstanden, warum dies getan werden muss.
Ich habe gelesen, dass wir die Fork - Setsid - Fork machen, um den Prozess zu vermeiden, die Kontrolle über ein Terminal zu erlangen, aber was bedeutet das? Wenn ich ein Programm im Hintergrund mit & (z. B. './script &') starte, unterscheidet sich die Ausführung dieses Prozesses von der normalen Ausführung eines Programms, das sich selbst in einen Daemon verwandelt?
Bedeutet dies einfach, dass beim Abmelden der Hintergrundprozess gestoppt wird und der Dämon weiter ausgeführt wird? Ich habe wirklich Probleme, die Sache mit der Kontrolle über ein Terminal zu verstehen.
Der Grund, warum mich das stört, ist, dass ich an einem eingebetteten RPi auf einem Roboter arbeite und daher Programme beim Booten starten muss. Momentan starte ich sie gerade von rc.local mit einem Befehl wie diesem su user -c 'python /home/user/launcher.py &' &
. Ich hatte noch nie ein Problem mit dem Programm, das beim Booten gestartet wurde (ich kann sogar sehen, wie der Prozess ps -e
beim SSHing zum RPi verwendet wird), aber ich würde gerne wissen, ob ein Risiko besteht oder ob es sich um eine schlechte Praxis handelt.
/dev/tty1
(einige Systeme unterscheiden sich).