Eu tenho lido sobre como iniciar automaticamente uma tela quando eu estiver ssh
em um servidor remoto. Gostaria de adicionar uma linha simples ao meu .bash_profile
para iniciar screen
quando entro ssh
e NÃO sair da minha conexão remota quando desconectar a tela.
Eu tenho procurado em exec screen
e praticamente todas as combinações de -d
, -r
, -D
e -R
e não pode descobrir o que as bandeiras que eu preciso.
Idealmente, eu digitaria e faria ssh whatever
login no servidor em um novo screen
ou ele poderá reconectar uma tela antiga. Gostaria de saber como fazer as duas coisas para ver qual eu gosto mais. Então eu posso digitar Ctrl adou Ctrl dme trazer de volta ao ssh
login normal para esse servidor (onde você veria o motd). A partir daí, posso screen -r
voltar para a tela que desejar ou clicar Ctrl dnovamente para sair.
fonte
logout
ouexit
logo após essa linha que uma sessão ssh seja imediatamente encerrada quando a tela for fechada com ctrl + D?Eu tive problemas com a criação de 40 sessões de tela em cascata 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 com isso:
Ele testa se você está em uma sessão de tela e é executado
screen -R
se não estiver. Sem o teste, você obtém o "Anexando de dentro da tela?" aviso da tela toda vez que você cria uma nova janela da tela.fonte
screen -ls
teste que Tony mencionadoscreen -RR
reconectará à primeira sessão disponível ou criará uma, se necessário.fonte
Se eu entender 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, será reconectado à existente de uma maneira para várias janelas (mesmo se você tiver várias sessões ssh, você terminará na mesma sessão de tela)
fonte
screen -xR
, que parece ser analisado como "anexar se houver algo a que anexar, caso contrário, criar nova tela".Aqui uma pequena extensão,
o script para o bashrc verifica se há mais de uma sessão de tela desanexada. Se houver mais, escolha a sessão manualmente. Quando houver uma sessão desanexada, você voltará a esta sessão. Se você sair da sessão, a sessão ssh também será fechada.
fonte
Se você deseja se conectar automaticamente a uma sessão de tela ao se conectar via SSH, adicione o código abaixo ao seu
.bash_profile
ou ao seu.bashrc
em sua máquina remota:.bashrc
Aqui está o script:
PS: Se você deseja habilitar isso para o terminal local, remova
&& ! -z "${SSH_CLIENT}
na primeira linha.fonte