控制來自其他會話/shell 的 tty/終端輸出

控制來自其他會話/shell 的 tty/終端輸出

我們被告知,一個 tty 最多可以控制一個會話,此外,可以控制 tty 不允許其受控會話中的後台進程組對其進行寫入或讀取,前者由該TOSTOP選項控制。

但是,其他會話寫入 tty 的位置如何?可以透過某種方式控制嗎?假設tty1tty2,都帶有殼。我很驚訝shell2下面的命令tty2......

ls > /dev/tty1

ls……實際上從on產生了輸出tty1,無論TOSTOPin 中的選項設定為何tty1。由於shell2它完全是另一個會話的一部分,我想可能就是這樣,因為該TOSTOP選項確實在嘗試從後台進程組寫入時執行了它應該執行的操作。有人可以告訴我發生了什麼事嗎?

答案1

TOSTOP選項(例如在Unix 電動工具, 或者當使用 & (bg) 運行時,Linux csh 腳本將暫停(tty 輸出)) 指的是 shell 的背景流程。在這種情況下,前景和背景有一個已知的關係。

但是,如果您的進程打開了一個終端,它(幾乎總是)對其具有權限,並且您擁有的另一個進程(在不同的終端中運行)不會不是具有這種關係可以打開同一設備並向其寫入。

相關內容