次のシェル相互作用があります。
[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 &
foo
bar
[1] 実際にecho
は組み込みシェルなので、別のプロセスとして実行されません。