Posso me conectar ou visualizar sessões ssh abandonadas?

14

Eu tenho uma instância virtual de redhat em execução que posso ssh para qualquer host na rede corporativa. Minha sessão ssh foi descartada durante a execução de alguns scripts que podem ou não me desconectar. O comando who localmente ainda lista a conexão descartada. Reconectar com ssh inicia uma sessão totalmente nova. Existe uma maneira de se conectar à sessão original? Se não posso matá-lo? Eu tenho raiz e acesso físico. Eu não estava usando a tela na sessão original.

    
por jms 17.08.2010 / 22:27

3 respostas

10

Você quer usar a tela no controle remoto e, em seguida, quando o ssh voltar, você se reconectará a essa instância da tela .

mas não, você não pode se reconectar a uma sessão ssh por si só, você tem que usar a tela (ou algo assim para facilitar isso).

Veja esta questão para pelo menos uma outra opção e algumas diferenças entre (tmux) e tela. depois de ler a resposta para essa pergunta ... Eu realmente diria tmux é melhor

oh e sim você poderia kill o processo (incluindo o bif bifurcado) pará-lo, você pode tentar skill para matar o usuário pelo nome, mas eu suspeito que se esse usuário for root ... ele pode tentar matando coisas que não podem.

A resposta

foi atualizada algumas vezes

    
por 17.08.2010 / 22:34
4

Por padrão, você não pode se reconectar a uma sessão ssh abandonada. No entanto, você pode configurar processos dentro de uma sessão ssh, à qual você pode se reconectar depois de restabelecer uma nova sessão ssh.

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 18.08.2010 / 00:24
3

Como mencionado, a tela é provavelmente sua melhor aposta. Se / quando sua sessão for descartada, ela continuará funcionando. Digite 'screen -list' para ver as sessões disponíveis e 'screen -r' com a sessão que você deseja. Uma pequena dica, você pode tab-completar a seqüência de sessão, em vez de copiar / colar a coisa toda.

No entanto, a tela pode ser irritante. No meu cliente, você não pode rolar facilmente para ver o histórico no console. Ele age de forma um pouco diferente do que você esperaria. Se tudo o que você quer fazer é garantir que seus processos de longa duração não sejam mortos, use 'nohup'. Isso impedirá que o seu processo seja encerrado quando você perder sua conexão. Certifique-se de enviar sua saída proc para um arquivo, se você quiser monitorá-lo, no entanto. Além disso, se você tiver um script bash, eu acho que você precisa chamar explicitamente 'bash' na frente de nohup. Um exemplo ...

nohup bash ./myscript.sh > output.log 2 > & 1 &

Isso significa nohup, para evitar matar o proc, bash para explicitamente chamar o bash se você tiver coisas específicas do bash em seu script, seu script chamado 'myscript.sh' no diretório atual, output.log como o arquivo para enviar ambos std out e error out to, e o '&' no final para executar o proc em segundo plano.

    
por 17.08.2010 / 22:51

Tags