아마도 이러한 스키마는 상황을 명확히 할 수 있습니다. 이것은 일반적인 설정입니다.
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, …)
그리고 다음 과 같이 새로운 것을 연결할 수있는 방법 이 없습니다Process3
:
Terminal
device
|
(screen)<---o---[<output]--x------(stdout) Process1
Terminal (keyboard)---/-x--[input >]-o-\---->(stdin)
| / \ \
| | \ `---(stdout) Process2
| | `--->(stdin)
| |
\ `---------------------(stdout) Process3
`--------------------->(stdin)
어떤 화면 (및 기타)이 의사 터미널 장치 (xterm처럼)를 할당하고 하나 이상의 "실제"터미널 (물리적, 가상 또는 에뮬레이트 된)로 리디렉션하는 것입니다.
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)
를 사용 screen -x
하면 하나 이상의 터미널 xterm Terminal 3
을 화면 세션에 연결할 수 있습니다 .
따라서 다른 터미널에 연결된 프로세스와 stdin / stdout을 통해 직접 통신 할 수 없습니다. 이 터미널이 의사 터미널 일 경우이 터미널을 제어하는 프로세스를 통해서만 수행 할 수 있으며이 프로세스가 그렇게 결정된 경우 (화면과 같이) 수행 할 수 있습니다.