screen
を使用しているときは、screen
を使用して疑似端末に書き込むことができます。閉じた後(C-A k y)socat
を再起動することなく、疑似端末を提供することなく、もう一度接続できません。
socat
を起動した直後のものは次のようになります。
/home/kidmose $ fuser /dev/pts/9
/dev/pts/9: 20960
/home/kidmose $ lsof /dev/pts/9
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
socat 20960 kidmose 5u CHR 136,9 0t0 12 /dev/pts/9
そして私は予想どおりに書いて読むことができます:
/home/kidmose $ echo "uname -a" > /dev/pts/9 && cat /dev/pts/9
uname -a
Linux egki-laptop-linuxmint 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
開始screen
も一度動作します(予想出力を書き込んで読み取ることができます)。
/home/kidmose $ screen /dev/pts/9
uname -a # My input
Linux egki-laptop-linuxmint 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux # Response
(C-a k y) # I kill the window and screen terminates ([screen is terminating])
これで、screen
と接続したり、簡単に書き込むことはできません。画面は[screen is terminating]
で終了し、書きを起こそうとすると、次のエラーが発生します。
/home/kidmose $ echo "uname -a" > /dev/pts/9 && cat /dev/pts/9
bash: /dev/pts/9: Device or resource busy
いくつかの情報:
/home/kidmose $ fuser /dev/pts/9
/dev/pts/9: 20960
/home/kidmose $ lsof /dev/pts/9
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
socat 20960 kidmose 5u CHR 136,9te 0t0 12 /dev/pts/9
/home/kidmose $
なぜそれが「忙しい」/利用できないのかというアイデアはいかなるアイデアですか?
te
出力に「lsof
」が表示されていることに気づいた。そのための説明は?
私の最後の目標は、リモートデバイスの仮想端末のようなものです。 NATなど)のため、仮想端末がサーバーに呼び込むためのリモートデバイスが必要です。
編集:LemonSqueezeとしてそれを彼の中に置くと コメント :
[A: sh -> socat] --> [B: socat -> pty -> screen]
Machine A TCP Machine B
提案:この状況では、a 逆SSH 接続:
SSHを実行している機械の代わりに、サーバーマシンはSSHを実行し、ポート転送を実行します。
しかし、それは確かにSocatでそれを構築するのと同じくらい楽しいものではありません。私はまだこのPTY問題の底に到達することをお勧めします、それは学ぶのが良い方法です。