プロセスをデーモン化するときになぜsetid()を使用するのですか?

プロセスをデーモン化するときになぜsetid()を使用するのですか?

作るためにサービス(デーモン)を呼び出して子プロセスをセッションリーダーにし、親プロセスを分岐して終了しますsetsid()。そして私たちはなぜそれを使うべきですかsetsid()?私たちの孤児プロセスはinit(すべての場合ではありませんが)プロセスによって処理されます。

私たちはなぜ使用するのですかsetsid()setsid()信号処理とどのような関係がありますかSIGHUP

答え1

setsid()親だけを殺すと子も死ぬのでこれを使います。つまりsetsid()

新しいセッションの作成呼び出しプロセスがプロセスグループリーダーでない場合。呼び出しプロセスは、新しいセッションリーダーであり、新しいプロセスグループのプロセスグループリーダーであり、制御端末がない。

親プロセスは最初のプロセスグループリーダーです。これを殺すか、セッション/ターミナルを殺すと、グループは死にます。これが私たちがリーダーを変える理由です(そしてその状態の間に新しいセッションを作成します)。

関連情報