Continue a tarefa em segundo plano do SSH / jobs ao fechar o SSH

23

Eu tenho a mesma pergunta que aqui mas além disso.

Se eu sair / sair da conexão SSH, preciso que meu programa seja executado em segundo plano. Antes de sair, eu digito bg e jobs para verificar a tarefa de execução em segundo plano, mas depois de sair do SSH, o programa não é executado, ele fecha quando eu fecho a janela do SSH.

O que posso fazer se quiser que meu programa continue em execução depois de fechar a janela do SSH? Eu uso nohup screen mas também não funciona, ou estou faltando alguma coisa?

    
por Huei 15.08.2013 / 11:47

4 respostas

36

Quando você usa screen , você precisa separar com CTRL + A + D antes de sair do ssh .

Como alternativa, se você quiser executar um processo diretamente com a tela, poderá usar

screen -dmSL [session name] [commands]
  • -d inicia uma sessão de tela e imediatamente se desconecta dela
  • -m força a criação de uma nova sessão de tela
  • -S permite que você dê um nome à sessão
  • -L ativa o registro em log para ~/screenlog.0

exemplo:

screen -dmSL workstuff myscript.sh

Você pode então:

continuar mais tarde usando screen -x workstuff

ou

verifique o arquivo de log less -r ~/screenlog.0

    
por 15.08.2013 / 12:32
13

Use tmux . Eu nem tenho certeza se screen ainda está em desenvolvimento ativo. É uma espécie de coisa de preferência, mas como alguém que usa tmux , posso testemunhar que foi configurado em cerca de 5 minutos e funcionou perfeitamente.

Em um sistema baseado no Debian (na máquina remota):

sudo apt-get install tmux

então digite tmux para entrar, execute o processo que você precisa, e pressione Ctrl + B então D (isto deixa o tmux sessão). Então, você pode sair do SSH.

Quando precisar voltar / verificar novamente, inicie o SSH e insira tmux attach . Ele levará você de volta à sua sessão tmux .

tmux tem muito mais recursos, conforme detalhado aqui. Mas isso deve resolver seu problema imediato.

Boa sorte!

    
por 09.02.2014 / 17:41
6

Por fim, resolvi usando screen :

No modo de tela, separe-a usando Ctrl A D . Então você pode fechar a janela do SSH.

    
por 16.08.2013 / 09:19
5

uso nohup: O primeiro dos comandos abaixo inicia o programa abcd em segundo plano de tal forma que o logout subseqüente não o pare.

$ nohup abcd &

$ exit

    
por 15.08.2013 / 12:46