Mungkin skema ini dapat mengklarifikasi situasinya. Ini adalah pengaturan yang biasa:
Terminal (/dev/ttyX or /dev/pts/x)
device
|
(screen)<--[<output]----x-------(stdout) Process1
Terminal (keyboard)---[input >]---o-\----->(stdin)
\ \
(hardware console or \ `----(stdout) Process2
virtual console or terminal `---->(stdin)
emulators like xterm, …)
Dan tidak ada cara untuk plug baru Process3
seperti ini:
Terminal
device
|
(screen)<---o---[<output]--x------(stdout) Process1
Terminal (keyboard)---/-x--[input >]-o-\---->(stdin)
| / \ \
| | \ `---(stdout) Process2
| | `--->(stdin)
| |
\ `---------------------(stdout) Process3
`--------------------->(stdin)
Apa yang dilakukan layar (dan lainnya) adalah mengalokasikan beberapa perangkat terminal semu (seperti halnya xterm) dan mengarahkannya ke satu atau lebih terminal "nyata" (fisik, virtual, atau ditiru):
Terminal pseudo
devices ,--> Terminal (/dev/pts/x)
| _______/ device
Terminal <--[<output]--- | | |
1 ---[input >]--> |screen | <--[<output]---x-----(stdout) Process1
|Process| ---[input >]--o-\--->(stdin)
Terminal <--[<output]--- | | \ \
2 ---[input >]--> |_______| \ `--(stdout) Process2
`-->(stdin)
Menggunakan screen -x
Anda dapat melampirkan satu terminal lagi, xterm, apa pun (katakanlah Terminal 3
) ke sesi layar.
Jadi tidak, Anda tidak dapat berkomunikasi langsung melalui stdin / stdout dengan proses yang dilampirkan ke terminal yang berbeda. Anda hanya dapat melakukannya melalui proses yang mengendalikan terminal ini jika kebetulan itu adalah terminal semu, dan jika proses ini disetujui untuk melakukannya (seperti layar).