作るためにサービス(デーモン)を呼び出して子プロセスをセッションリーダーにし、親プロセスを分岐して終了しますsetsid()
。そして私たちはなぜそれを使うべきですかsetsid()
?私たちの孤児プロセスはinit
(すべての場合ではありませんが)プロセスによって処理されます。
私たちはなぜ使用するのですかsetsid()
?setsid()
信号処理とどのような関係がありますかSIGHUP
?
答え1
setsid()
親だけを殺すと子も死ぬのでこれを使います。つまりsetsid()
:
新しいセッションの作成呼び出しプロセスがプロセスグループリーダーでない場合。呼び出しプロセスは、新しいセッションリーダーであり、新しいプロセスグループのプロセスグループリーダーであり、制御端末がない。
親プロセスは最初のプロセスグループリーダーです。これを殺すか、セッション/ターミナルを殺すと、グループは死にます。これが私たちがリーダーを変える理由です(そしてその状態の間に新しいセッションを作成します)。