it-swarm-pt.tech

Como posso ter várias sessões de terminal por meio de uma única conexão SSH?

Eu tenho uma edição do servidor Ubuntu em execução e posso SSH nele 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 a 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 estava esperando que houvesse um jeito mais direto, algo como a interface do usuário faz com os desktops virtuais.

21
JPrescottSanders

O que você quer usar é a tela ou melhor ainda um envoltório amigável ao redor da tela chamado byobu.

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

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

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

Finalmente alguns screenshots de byobu.

24
txwikinger

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 este .screenrchttp://paste.ubuntu.com/473764/ salvá-lo no servidor remoto na pasta inicial do seu 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 de tela ativas. Sim, você pode ter vários terminais dentro de várias telas. SO 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 irá retomar uma sessão da tela Detached, IE: screen -x 16467

Quando estiver em uma tela (e você tiver empregado meu arquivo .screenrc de amostra), você verá o seguinte ao longo da 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 que mostra que há outra aba aberta e a aba ativa é o número 1. Você pode abrir no máximo 60 abas por sessão de tela.

Se você quiser sair da tela, mas mantê-la em uso, use Ctrl + A e d, o que desanexará sua sessão. Finalmente, você pode fechar as abas usando Ctrl + A e k, o que matará essa aba (se ela travar), mas normalmente você pode simplesmente digitar exit como se estivesse em um terminal e fechará essa aba.

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

Há uma enorme quantidade de opções disponíveis para o Screen que você deve colocar sobre o arquivo man para mais. Existem algumas desvantagens. 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 screen -ls e screen -x de volta à sua sessão.

5
Marco Ceppi

Se você está usando o Ubuntu Server Edition, o 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.

1
jbowtie

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

$ cat /home/cjac/.screenrc 

escapar ^ \

Tente isso!

0
cjac