他のセッション/シェルからの tty / 端末出力の制御

他のセッション/シェルからの tty / 端末出力の制御

tty は最大 1 つのセッションを制御でき、さらに、制御されたセッション内のバックグラウンド プロセス グループが tty に書き込みまたは読み取りできないように tty を制御できると言われています。前者はオプションによって制御されますTOSTOP

しかし、他のセッションが tty に書き込む位置はどうなっているのでしょうか? 何らかの方法で制御できますか?tty1と をtty2シェルで想定します。 で次のコマンドを実行するとshell2tty2...

ls > /dev/tty1

... でオプションが何に設定されていたかに関係なく、実際にlsはからの出力が生成されました。 は完全に別のセッションの一部であるため、バックグラウンド プロセス グループから書き込もうとすると、オプションが期待どおりの動作をするため、これが原因である可能性があると考えました。何が起こっているのか、誰か教えてくれませんか?tty1TOSTOPtty1shell2TOSTOP

答え1

オプションTOSTOP(例えばUnix パワーツール、 またはLinux csh スクリプトが & (bg) で実行中に Suspended (tty 出力) になる)はシェルの背景プロセス。この状況では、前景と背景には知られている関係。

しかし、あなたのプロセスがターミナルを開いている場合、そのプロセスは(ほとんどの場合)そのターミナルに対する権限を持っており、あなたが所有する別のプロセス(別のターミナルで実行中)はないその関係があれば、同じデバイスを開いて書き込むことができます。

関連情報