Posso me conectar ou visualizar sessões ssh abandonadas?


14

Eu tenho uma instância virtual de redhat em execução que posso sshde qualquer host na rede corporativa. Minha sshsessão foi interrompida durante a execução de alguns scripts que podem ou não ter me causado uma desconexão. owho comando localmente ainda lista a conexão descartada. Reconectar com sshinicia uma sessão totalmente nova. Existe uma maneira de se conectar à sessão original? Se não, posso matá-lo? Eu tenho acesso root e físico. Eu não estava usando a tela na sessão original.

Respostas:


11

Você deseja usar a tela no controle remoto e, em seguida, quando voltar a conectar-se novamente àquela instância da tela.

mas não, você não pode se reconectar a uma sessão ssh, precisa usar a tela (ou algo semelhante para facilitar isso).

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

Ah, e sim, você pode killinterromper o processo (incluindo a bifurcação bifurcada), tentar skillmatar o usuário pelo nome, mas desconfio que se esse usuário for root ... ele pode tentar matar coisas que não pode.

resposta foi atualizada algumas vezes


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 pode se reconectar após o restabelecimento de uma nova sessão ssh.

O que você deseja usar é a tela ou, melhor ainda, um invólucro fácil de usar na tela chamado byobu.

Tela permite executar várias sessões de terminal virtual na mesma sessão ssh. Um tutorial e páginas de ajuda estão disponíveis.

O byobu é um invólucro 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.

Outro recurso interessante é o fato de que toda a tela pode permanecer ativa enquanto a conexão ssh estiver desconectada. Você acabou de se conectar novamente via ssh e chamar byobu e tudo está como antes.

Finalmente, algumas capturas de tela do byobu.


3

Como mencionado, a tela é provavelmente a sua melhor aposta. Se / quando sua sessão for interrompida, ela continuará em execução. 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 concluir a sequência da sessão em tabulaçã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 um pouco diferente do que você esperaria. Se tudo o que você quer fazer é garantir que seus procs de longa duração não sejam mortos, use 'nohup'. Isso impedirá que seu processo seja desligado quando você perder sua conexão. Certifique-se de enviar sua saída proc para um arquivo, se você quiser monitorá-lo. Além disso, se você possui um script bash, acho que precisa chamar explicitamente 'bash' na frente do nohup. Um exemplo...

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

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.