Como posso ter várias sessões de terminal através de uma única conexão SSH?

18

Eu tenho uma edição do servidor Ubuntu em execução e consigo executar o SSH para executar várias tarefas. O que eu gostaria é a capacidade de SSH em meu servidor iniciar um aplicativo de servidor e, em seguida, alternar para outra sessão "virtual" (com na mesma instância SSH) e executar chamadas de cliente no serviço. Quando inicio o serviço é uma chamada de bloqueio, por isso não posso executar chamadas do cliente contra ele sem ativar a sessão SSH.

Eu esperava que houvesse um jeito mais direto, algo como a interface do usuário faz com os desktops virtuais.

    
por JPrescottSanders 06.08.2010 / 01:37

4 respostas

23

O que você quer usar é a tela ou, melhor ainda, um invólucro amigável ao usuário chamado byobu.

A tela

permite que você execute várias sessões de terminal virtuais na mesma sessão ssh. Um tutorial e páginas de ajuda estão disponíveis.

byobu é um wrapper que permite abrir facilmente novas telas com uma função simples chave em vez de combinação de teclas de ctrl-a. Ele também mostra uma linha de status com todos os terminais virtuais abertos que podem ser nomeados.

Outro recurso interessante é o fato de que toda a tela pode ficar ativa enquanto a conexão do ssh é desconectada. Você acabou de se conectar novamente via ssh e chamar byobu e tudo é como antes.

Por fim, algumas capturas de tela do byobu

    
por txwikinger 06.08.2010 / 01:43
5

GNU Screen é a resposta que você está procurando - mas é muito parecido com o Vi. Você tem muito aprendizado de comandos para configurar um ambiente de tela bem-sucedido. Aqui estão algumas coisas para você começar. Primeiro de tudo, você vai querer que o link .screenrc o salve no servidor remoto na pasta inicial do usuário. Próxima tela de instalação na máquina remota ( sudo apt-get install screen ) Em seguida, você vai querer acioná-lo aqui estão alguns comandos para "tela de disparo":

screen - Isso é bem simples. Inicia uma nova sessão de tela screen -ls - Lista todas as sessões da tela ativa. Sim, você pode ter vários terminais dentro de várias telas. Tão doce.

Amostra

screen -ls
There is a screen on:
    16467.pts-0.ubuntu  (08/05/2010 07:47:53 PM)    (Detached)
1 Socket in /var/run/screen/S-marco.

screen -x <pid> - Isso retomará uma sessão da tela Detached: IE: screen -x 16467

Quando estiver em uma tela (e você tiver usado minha amostra de arquivo .screenrc ), você verá o seguinte na parte inferior:

(LOAD) 0$* bash

Qual é o carregamento dos servidores e uma lista de todas as "guias de terminal" abertas. Atualmente apenas uma janela. Digite alguma coisa, em seguida, pressione esta combinação de teclas: Ctrl + A release e, em seguida, pressione c . Ctrl + A é a sequência de escape. Todos os comandos são iniciados com essa combinação. c é criar nova aba. Você notará que o rodapé tem (LOAD) 0-$ bash 1$* bash , o que mostra que há outra guia aberta e a guia ativa é o número 1. Você pode abrir no máximo 60 guias por sessão de tela.

Se você quiser sair da tela, mas continuar em execução, use Ctrl + A , em seguida, d , o que desanexará sua sessão. Finalmente, você pode fechar as guias usando Ctrl + A , em seguida, k , que eliminará essa guia (se ela travar), mas normalmente você pode digitar exit como se estivesse em um terminal e fechar essa guia. p>

Por fim, para listar todas as janelas abertas, você pode digitar Ctrl + A then " .

Há uma enorme quantidade de opções disponíveis para o Screen que você deve colocar sobre o arquivo man para mais. Existem alguns inconvenientes. Você não pode usar sua barra de rolagem na Tela, você tem que usar controles de buffer para retroceder, no entanto, o acima é suficiente para você começar a ver se esta é uma opção viável. Uma grande coisa sobre isso e algo que eu lidei muito com um administrador do sistema - conectividade de rede. Se a sua rede desistir, suas operações não serão perdidas! Como a tela está sendo executada no servidor. Você simplesmente precisa fazer o login novamente via SSH e, em seguida, screen -ls e screen -x em sua sessão.

    
por Marco Ceppi 06.08.2010 / 01:55
1

Se você estiver usando o Ubuntu Server Edition byobu é definitivamente sua melhor opção. O Ubuntu Server Guide tem alguma documentação útil .

Geralmente é mais fácil aprender e usar do que screen e é instalado por padrão.

    
O
por jbowtie 06.08.2010 / 02:15
0

Eu uso o Emacs, então a configuração padrão da tela dificulta a minha vida.

$ cat /home/cjac/.screenrc 

escape ^ \

Tente isso!

    
por cjac 06.08.2010 / 02:00