セッションリーダーが制御端末を獲得すると、セッションの他の既存のプロセスもどのように制御端末を獲得できますか?

セッションリーダーが制御端末を獲得すると、セッションの他の既存のプロセスもどのように制御端末を獲得できますか?

複数のプロセスがあり、制御端末がないセッションがあるとします。

セッションリーダーが制御端末への接続を作成すると、

  • 同じセッションの他のプロセスは、セッションに制御端末があり、

  • どのように制御端末を使用できますか?

私がこの質問をする理由は次のとおりです。通常、プロセスはsetsid()新しいセッションを開始してリーダーになるために呼び出され、open()制御端末に接続するために呼び出されます。その後、セッションリーダは、fork()ファイル記述子を制御端末に継承するサブプロセス処理を進める。

もしそうなら、セッションにすでに複数のプロセスがあるが制御端末がない場合、リーダーが制御端末への接続を作成し、セッションの他のプロセスへの接続を作成した場合はどうなりますか?

ありがとうございます。

答え1

セッションリーダーが制御端末を獲得した後に生成されたすべての新しい子プロセスは、その制御端末も所有します。制御端末は親端末から継承されます。

つまり、既存の子供は影響を受けません。

関連情報