inicia automaticamente a tela após o login do ssh

14

Eu tenho lido sobre como iniciar automaticamente uma tela quando eu ssh para um servidor remoto. Eu gostaria de um simples one-liner para adicionar ao meu .bash_profile para iniciar screen quando eu ssh in, e não sair da minha conexão remota quando eu destacar a tela.

Eu tenho pesquisado exec screen e praticamente todas as combinações de -d , -r , -D e -R e não consigo descobrir quais bandeiras eu preciso.

O ideal seria digitar ssh whatever e estar logado no servidor em um novo screen ou ele pode reconectar uma tela antiga, eu meio que gostaria de saber como fazer as duas coisas para ver o que eu gosto mais. Então eu posso digitar Ctrl a d ou Ctrl d e trazê-lo me de volta para o login ssh normal para esse servidor (onde você veria o motd). De lá, posso screen -r voltar para a tela que quiser, ou teclar Ctrl d novamente para sair.

    
por Ronald Dregan 09.04.2013 / 03:14

5 respostas

16

Um simples screen -R deve fazer o truque.

Para verificar isso, adicionei screen -R ao meu .bash_profile em um servidor remoto, conectado, desconectado da tela e retornado a um prompt normal no servidor remoto. Verificado com .bashrc também. Os logins subsequentes geraram o resultado esperado (reconectar à sessão de tela).

    
por 09.04.2013 / 04:34
9

Eu tive problemas com 40 sessões de tela em cascata sendo criadas com algumas das soluções ao iniciar uma nova janela ou sessão de tela. Consegui eliminar a tela em cascata e criar uma nova sessão se não existisse isso:

if [ -z "$STY" ]; then screen -R; fi

Ele testa se você está em uma sessão de tela e executa screen -R se não estiver. Sem o teste você recebe o "Anexar de dentro da tela?" aviso da tela toda vez que você criar uma nova janela de tela.

    
por 05.03.2015 / 19:12
7

Se eu entendi sua necessidade, tente:

if $(screen -ls | grep -q pts); then screen -x; else screen -R; fi

Ele criará apenas uma sessão de tela, caso contrário, ele será reconectado ao já existente em uma janela com várias janelas (mesmo se você tiver várias sessões ssh, você terminará na mesma sessão de tela)

    
por 09.04.2013 / 04:39
7

screen -RR será reconectado à primeira sessão disponível ou criará uma, se necessário.

    
por 18.09.2014 / 22:53
0

Aqui uma pequena extensão,

o script para a verificação do bashrc se houver mais de uma sessão de tela desanexada. Se houver mais, então você deve escolher a sessão manualmente. Quando há uma sessão separada, você volta para esta sessão. Se você sair da sessão, a sessão do ssh também fechará.

 #Start Screen
 if [ -z "$STY" ]; then

 value=$( screen -ls |grep '\<pts.*Detached\>' |wc -l )

 if [ $value -gt 1 ]; then

  screen -ls

 else

  screen -R

  echo 5 Sek. bis die SSH Session beendet wird.

  echo Strg + C - um ohne screen weiter zu arbeiten.

  sleep 6

  exit

 fi

fi
    
por 25.03.2018 / 09:27