Na minha caixa linux, ao usar screen
, posso abrir, ler e gravar em um pseudo terminal com screen
.
Depois de fechá-lo (C-a k y) não consigo me conectar a ele novamente, sem reiniciar o socat
, que fornece o pseudo-terminal.
Logo após o início de socat
, as coisas ficam assim:
/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
e posso escrever e ler conforme o esperado:
/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
A partir de screen
também funciona uma vez (posso escrever e ler a saída esperada):
/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])
Agora não consigo mais me conectar com screen
, nem simplesmente escrever. A tela sai imediatamente com [screen is terminating]
e eu recebo o seguinte erro ao tentar escrever:
/home/kidmose $ echo "uname -a" > /dev/pts/9 && cat /dev/pts/9
bash: /dev/pts/9: Device or resource busy
Algumas informações:
/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 $
Alguma idéia de por que ela está "ocupada" / indisponível?
Eu notei que o ' te
' aparece na saída lsof
. Alguma explicação para isso?
Meu objetivo final é ter um terminal virtual em um dispositivo remoto.
Devido ao NAT, eu preciso do dispositivo remoto para ligar para o servidor, onde o terminal virtual será.
Edit: Como limonsqueeze colocá-lo em seu comentar :
[A: sh -> socat] --> [B: socat -> pty -> screen]
Machine A TCP Machine B