Reabre a sessão de tela após conectar-se ao servidor

1

Estou trabalhando apenas em uma sessão de tela no meu vps que é executado o tempo todo. Quando eu me conecto a este servidor via ssh, eu reconecto isso com um alias bash

alias screenr='screen -r -d'

O que eu quero:

Conectando ao servidor e reconectando automaticamente a sessão.

O que eu tentei:

Adicionar screen -r ao final do meu .bashrc leva a uma mensagem de informação da tela, que eu já estou anexado à sessão.

Alguma idéia ou eu perdi um parâmetro na página do manual?

    
por sascha 02.01.2012 / 11:13

2 respostas

3

Em vez do bashrc, tente usar seu arquivo de configuração ssh (~ / .ssh / config). Você pode alterá-lo para executar um comando no login. Por exemplo:

Host some_alias
Hostname                your_vps.dyndns.org
Port                    22
User                    some_user
PermitLocalCommand      yes
LocalCommand            screen -dRR screen_session_name

Então tudo que você precisa fazer é ssh some_alias e você irá automaticamente reconectar a sua sessão de tela com o nome screen_session_name (ou criá-lo se não existir ).

Edit: A propósito, isso vai na sua máquina local, não no seu servidor.

    
por 02.01.2012 / 11:51
3

Eu uso o seguinte no meu .bash_profile:

# if not running screen, attached to a terminal and is myusername (not run through sudo)
if [ -z "${STY}" -a -t 0 -a X${USER} = Xmyusername ]; then
    # function to re/attach to screen
    reattach () {
        # if Agent Forwarding is active, set up a mechanism to update the socket
        if [ -n "${SSH_AUTH_SOCK}" ]; then
            ln -snf "${SSH_AUTH_SOCK}" "${HOME}/.ssh/agent-screen"
            SSH_AUTH_SOCK="${HOME}/.ssh/agent-screen" export SSH_AUTH_SOCK
        fi
        # replace the login shell with screen
        exec screen -A -D -RR ${1:+"$@"} ;
    }
    # remove any defunct sessions
    screen -wipe
    echo 'starting screen... (type Cntl-C to abort)'
    sleep 5 && reattach
fi

Isso cria uma sessão única que eu reconectar no login. Aguarda 5 segundos no caso de eu querer apenas uma concha. Altere a myusername na primeira cláusula if .

    
por 02.01.2012 / 14:04