Warum verwenden wir setsid(), wenn wir einen Prozess daemonisieren?

Warum verwenden wir setsid(), wenn wir einen Prozess daemonisieren?

Um eineDienst (Daemon)Wir verzweigen den übergeordneten Prozess und beenden ihn, während wir den untergeordneten Prozess durch Aufruf zum Sitzungsleiter machen setsid(). Warum verwenden wir überhaupt ? Unser verwaister Prozess wird (wenn auch nicht in allen Fällen) setsid()von process betreut .init

Warum verwenden wir setsid()? Gibt es eine Beziehung zwischen setsid()und der SIGHUPSignalverarbeitung?

Antwort1

Wir verwenden setsid():setsid()

erstellt eine neue Sitzungwenn der aufrufende Prozess kein Prozessgruppenleiter ist. Der aufrufende Prozess ist Leiter der neuen Sitzung, Prozessgruppenleiter der neuen Prozessgruppe und hat kein steuerndes Terminal.

Der übergeordnete Prozess ist der erste Leiter der Gruppe. Wenn dieser oder die Sitzung/das Terminal beendet wird, wird die Gruppe beendet. Deshalb wechseln wir den Leiter (und erstellen dabei eine neue Sitzung).

verwandte Informationen