Desligando o PC sem matar as sessões SSH


14

Eu tenho alguns processos pesados ​​e longos executando em máquinas Linux remotas. Eu uso meu laptop para fazer o SSH nessas máquinas e executar os processos do meu sofá.

MAS, quando quero desligar meu laptop, estou com problemas, pois os processos remotos são interrompidos.

Eu fiz minha pesquisa e descobri que "tela" é uma ótima solução para mim, é! (Contanto que eu não desligue meu laptop). Não existe uma maneira de "persistir" as sessões de "tela" para que eu possa desligá-lo e reconectá-lo a uma sessão?


Você está executando a tela nos sistemas Linux remotos?
Sam Miller

é possível embasar os processos?
ennuikiller

Respostas:


32

Parece que você está executando a sessão de tela no seu laptop. Depois, faça o sshing dessa sessão de tela para o (s) host (s) remoto (s). Desligar o laptop mata o processo de tela local, que por sua vez mata a sessão ssh.

O que você quer fazer é ssh do seu laptop para o (s) host (s) remoto (s). Em seguida, inicie uma sessão de tela no host remoto. Quando o laptop é desligado, a sessão ssh desaparece, mas a sessão na tela remota persiste.

Na próxima vez que você fizer login no sistema remoto, poderá reconectá-lo à sessão de tela com "screen -r" ou se tiver várias sessões de tela "screen -r <pid>".

Nota: se você esqueceu de se desconectar da sessão de tela remota antes que o ssh seja morto, a sessão de tela pode pensar que ainda está anexada. Nesse caso, você precisará executar "screen -dr <pid>" para desanexar a sessão primeiro.


4
By the way, se bem me lembro, pressionar Ctrl+Aseguido por Dquando você estiver screenirá desanexar a sessão da tela.
David Z

@ David, isso está correto, você também pode fechar seu terminal ou sessão ssh e a tela permanecerá aberta. "screen -raAd" será anexado novamente.
Chris

Como posso iniciar uma sessão de tela no host remoto?
stupidity

15

Você pode usar nohuppara iniciar um processo que continuará em execução após o logoff de uma máquina. Isso pode ser o que você está procurando.


Para um processo já em execução, você pode executar ^ Z e, em seguida, disowncriar o que acredito ser um efeito equivalente. disowné um basismo que pode ou não estar disponível em outras conchas.
intuited

+1 para nohup. O problema ^Zé que ele interrompe o processo. Não há como ter um processo em segundo plano, mas mantenha-o funcionando sem problemas.
detly

6

Se você iniciar a sessão remota screen, poderá desligar o seu laptop com segurança.


Não tenho certeza se é universalmente óbvio que a sessão de tela desconectada deve estar no servidor remoto.
intuited


2

Use nohup. Outra opção para usar o VNC. Crie uma sessão VNC no servidor. Em seguida, conecte-o sempre que trabalhar. (Mais útil quando o longo processo está usando alguma GUI - uma IDE, por exemplo)


0

Se esses servidores tiverem um KVM remoto da ILO / DRAC / Other, etc, você poderá se conectar ao console e interagir lá. Como as sessões iniciadas são essencialmente locais, interromper a conexão do seu laptop não fará nada.

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.