Shell perde keypresses ao executar o SSH em segundo plano

4

Estou passando por um problema bizarro com o SSH + Bash + Terminal.app: quando o SSH é executado em segundo plano, o shell parece perder aleatoriamente pressionamentos de tecla ~ 50% do tempo.

Por exemplo, se eu correr:

$ ssh -N my-tunnel &
$ # typing becomes lossy

Em seguida, digite "asdf", apenas as letras "a" e "f" podem aparecer (embora seja uma velocidade de digitação aleatória e parcialmente relacionada; se eu estivesse digitando a toda velocidade, possivelmente apenas o "f" poderia aparecer) .

Esse problema afeta apenas o shell. Se eu executar, por exemplo, ssh -N my-tunnel & cat , os caracteres serão ecoados como esperado pelo cat. As teclas pressionadas são perdidas quando o gato é morto e eu volto para a concha.

Outras coisas a notar:

  • Outras janelas do terminal não são afetadas
  • O shell retorna ao normal assim que o ssh é finalizado
  • Usar nohup ssh -N my-tunnel & não altera nada

Então: o que está acontecendo aqui? E existe alguma maneira de eu fazer o background ssh sem quebrar o terminal?

    
por David Wolever 08.09.2014 / 22:11

2 respostas

3

Você deve usar -n além de -N para evitar que o ssh leia o terminal.

    
por 08.09.2014 / 22:58
3

Este é o comportamento normal. Não execute ssh em segundo plano quando ainda estiver conectado ao terminal. Se você quiser colocá-lo em segundo plano depois que o terminal não for mais necessário (por exemplo, para uma senha), use a opção -f e não use & :

ssh -fN my-tunnel
    
por 08.09.2014 / 22:57