`stty tostop`が設定されている場合、同じセッションにないプロセスがまだttyに書き込むことができるのはなぜですか?

`stty tostop`が設定されている場合、同じセッションにないプロセスがまだttyに書き込むことができるのはなぜですか?

次のシェル相互作用があります。

[OP@localhost linux]$ tty
/dev/pts/7
[OP@localhost linux]$ stty tostop
[OP@localhost linux]$

別の端末に次のように入力します。

[OP@localhost linux]$ echo hello > /dev/pts/7

元のテキストに戻り、次を見ました。

[OP@localhost linux]$ tty
/dev/pts/7
[OP@localhost linux]$ stty tostop
[OP@localhost linux]$ hello

なぜこれですか?エコプロセスを中止してはいけませんか?

ベストアンサー1

マニュアルページには次のように表示されますtermios(3)

TOSTOP

SIGTTOUシグナルを送信プロセスグループの一つバックステージコース書こうとする制御端子

あなたのechoプロセス[1]はバックグラウンドプロセスではなく、書き込みを試みません。それttyを制御してください。

SIGTTINまた、「プロセスグループ」ビットに注意してください。 、、SIGTTOUなどのジョブ制御信号は、および同じSIGINTパイプの犯人プロセスだけでなく、全体のプロセスグループ/タスクに送信されます。foo | bar &foobar

[1] 実際にechoは組み込みシェルなので、別のプロセスとして実行されません。

おすすめ記事