o que acontece ao executar remotamente o processo quando o host remoto é desconectado?

1

Digamos que eu ssh em um host remoto, inicie alguns processos nele e desconecte antes que os processos terminem. O que acontece com os processos?

Eles continuam?

    
por Bibek_G 19.01.2016 / 15:20

1 resposta

2

Como o processo é um filho do shell que você abriu sobre o ssh, esse processo será encerrado assim que você sair do shell, por exemplo, desconectando.

Você pode usar métodos diferentes para contornar isso:

  1. Inicie o programa com nohup (sem desligar) e desative-o:

    nohup somecommand &
    disown %1
    

    Isso redirecionará toda a saída para um arquivo $PWD/nohup.out , se você quiser descartar a saída, canalize-a para /dev/null (entre somecommand e & )

  2. Use um multiplexador de terminal, como o GNU Screen ou o tmux:

    tmux
    #Inside tmux
    somecommand
    

    Em seguida, desanexe da sessão do tmux usando Ctrl + B , seguido por D . Agora você pode desconectar com segurança. Quando você quiser obter a sessão do tmux novamente em outro shell, simplesmente execute

    tmux a
    

    Agora você está de volta ao shell que deixou.

por 19.01.2016 / 15:37