Mantenha os processos em execução ativos ao desconectar a conexão remota

4

Eu tenho um monte de processos em um servidor iniciado por ssh da minha própria máquina. Agora, são cerca de três horas que o Ubuntu da minha máquina foi interrompido e não vejo nenhuma outra opção a não ser reiniciar. Existe alguma maneira de manter os processos no servidor vivo? Eu tenho o acesso root a minha máquina e servidor.

obrigado antecipadamente

    
por user195229 22.09.2013 / 22:19

1 resposta

5

Existem várias maneiras de arquivar isso:

nohup

use nohup para executar o comando para que o processo fique imune a travamentos (logout).

Por exemplo: nohup command > /path/to/log 2>&1 &

  

OBSERVAÇÃO : o comando acima executa imune a SIGHUP no fundo e redireciona stdout / stderr para um arquivo de log.

setsid e disown

Use setsid e disown Basicamente, isso permite que o processo seja executado como uma nova sessão (init como seu pai) para que o logout do usuário não o afete. Você pode ler o manual para mais informações.

Abordagem recomendada

Use tmux ou screen

Execute o comando / apps em uma sessão tmux ou screen . Eu pessoalmente prefiro o tmux. Basicamente, ele executa um servidor no host (servidor remoto), contanto que o daemon NÃO morra, todas as informações da sessão serão salvas.

  

OBSERVAÇÃO : se você for desconectado, basta enviar o ssh para o servidor novamente e executar tmux attach para voltar às sessões.

    
por Terry Wang 23.09.2013 / 05:13

Tags