Como posso controlar um shell remoto existente?

5

Na minha máquina remota, um xterm / shell foi criado (por outro processo). Eu tenho acesso total a esse shell através do VNC. Mas realmente eu gostaria de estar usando um shell de modo de texto na minha máquina local.

Como posso controlar o shell remoto existente de um local? Eu não posso criar um novo shell, esse é o ponto. Mas eu tenho acesso não privilegiado ao shell remoto existente.

    
por blah 18.08.2012 / 00:45

1 resposta

3

Você deve iniciar os shells em screen ou tmux para que eles possam ser facilmente reconectados em um novo terminal.

Com screen , isso é feito com as seguintes etapas:

  1. Inicie o shell em algum lugar (por exemplo, no VNC):

    screen -S myshell

  2. Recoloque o shell em outro lugar (por exemplo, um novo terminal com SSH):

    screen -x myshell

Embora os métodos acima sejam altamente recomendados, eles não são suficientes para controlar um shell existente . Para isso, você precisará de alguns truques adicionais.

Uma maneira de reconectar um shell existente (que não foi lançado com screen ou tmux ) é usar reptyr .

Do site do reptyr :

reptyr is a utility for taking an existing running program and attaching it to a new terminal. Started a long-running process over ssh, but have to leave and don't want to interrupt it? Just start a screen, use reptyr to grab it, and then kill the ssh session and head on home.

Você pode simplesmente usar o ID do processo (PID) e informar ao reptyr para reconectá-lo:

reptyr PID
    
por 16.10.2012 / 18:03