Service(daemon)を作成するために、親をforkし、setsid()
を呼び出して子をセッションリーダーにしながら終了します。さらに、なぜ私たちはsetsid()を使用するのですか?私たちの孤立プロセスはinit
(すべてのケースではありませんが)プロセスによって処理されます。
なぜstsid()を使用するのですか? setsid()
とSIGHUP
信号の処理の間に関係はありますか?.
Setsid()を使用するのは、親を殺すだけの場合、子も殺されるので、setsid()
新しいセッションを作成します 呼び出しプロセスがプロセスグループリーダーでない場合。呼び出しプロセスは、新しいセッションのリーダーであり、新しいプロセスグループのプロセスグループリーダーであり、制御ターミナルはありません。
親は最初のプロセスグループリーダーであり、グループを強制終了するか、セッション/ターミナルを強制終了すると、グループが強制終了されます。そのため、リーダーを切り替えます(その間に新しいセッションを作成します)。