A desconexão temporária da sessão ssh afeta um programa em execução?

5

descobri que, se a minha conexão com a internet for desconectada durante uma sessão ssh para um servidor Linux remoto e, em seguida, for reconectada em pouco tempo, a sessão ssh ainda estará ativa.

Se eu estiver executando um programa no servidor e redirecionando suas saídas stdout e stderr para um arquivo, a desconexão temporária da Internet não impedirá a execução do programa.

Mas a desconexão afetará o conteúdo do arquivo? Eu pensei que não. Eu encontrei algum conteúdo do arquivo não repetível ao executar novamente o programa sem interrupção para minha conexão com a Internet, mas não tenho certeza se a interrupção da conexão com a Internet é a causa.

    
por Tim 13.01.2016 / 19:44

3 respostas

8

Se a sessão permanecer ativa, ela permanecerá ativa. Não há truques, apenas um buffer e TCP fazendo isso.

Portanto, se uma conexão com uma sessão ssh for perdida e recuperada devido a uma conexão à Internet "ruim", o aplicativo que está em execução nessa sessão nunca saberá. A sessão continua.

É muito parecido com desconectar seu monitor (enquanto olha para o console) não deve afetar o aplicativo em execução naquele console.

    
por 13.01.2016 / 19:49
2

But will the disconnection affect the content of the file? I thought it wouldn't.

Se a conexão for interrompida, sua sessão terminará e seu shell e comando serão cancelados. Se você estiver interessado em executar comandos em seu servidor remoto, mesmo se você desconectar, deverá procurar o comando nohup , screen ou tmux multiplexor ou mosh para conectores de conexão ruins.

    
por 13.01.2016 / 20:17
0

Se você quiser ter certeza de que seu programa permanece em execução enquanto desconectado, use a tela . Então você pode deliberadamente desconectar sua conexão ssh, voltar horas ou mesmo dias depois e reconectar a ela (desde que a máquina não tenha sido reinicializada, ou qualquer outra coisa feita para terminar o programa, é claro)

    
por 14.01.2016 / 00:19

Tags