Linuxインストールをデスクトップに起動するとします。 gnome-terminal/konsole/何でも起動すると、コマンドを入力するttyがあります。
それでは、SSHを介して同じシステムに接続するとしましょう。コマンドを入力するために私を別のttyにバインドします。
さて、私のttyを元のSSH端末から以前に起動したgnome端末端末に「変換」したいとしましょう。
screen -x
デフォルトでは、画面なしで同じことを行う方法があるかどうかを尋ねています。
/devファイルに何かをエコーすると、出力を他のttyに簡単に送信できることがわかりますが、ttyに何があるかを「見る」方法はわかりません。
どんなアイデアがありますか?
ベストアンサー1
おそらく、これらのパターンは状況を明確にするかもしれません。一般的な設定は次のとおりです。
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など)を割り当て、それを1つ以上の「実際の」端末(物理、仮想、またはエミュレートされた)にリダイレクトすることです。
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)
xtermを使用すると、スクリーンセッションにscreen -x
他の端末を接続できます。Terminal 3
したがって、いいえ、他の端末に接続されているプロセスを使用してstdin / stdoutを介して直接通信することはできません。この端末が擬似端末であり、プロセスがそうするように設計されている場合(画面のように)、その端末のプロセスを制御する必要があります。