
複数のプロセスがあり、制御端末がないセッションがあるとします。
セッションリーダーが制御端末への接続を作成すると、
同じセッション内の他のプロセスは、セッションに制御端末があることをどのように知るのでしょうか?
制御端末もどのように利用することができるのでしょうか?
この質問の理由は次のとおりです。通常、プロセスはsetsid()
新しいセッションを開始してそのリーダーになるために を呼び出し、open()
制御端末に接続するために を呼び出します。その後、セッション リーダーは子プロセスに進みfork()
、子プロセスは制御端末へのファイル記述子を継承します。
では、セッションにすでに複数のプロセスがあり、制御端末がない場合、リーダーが制御端末への接続を作成すると、セッション内の他のプロセスはどうなるのだろうかと思います。
ありがとう。
答え1
セッション リーダーが制御端末を取得した後に作成する新しい子も、その制御端末を持つことになります。制御端末は親から継承されるものです。
言い換えれば、既存の子供は影響を受けません。