Continue tarefas / trabalhos em segundo plano do SSH ao fechar o SSH


27

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

Se eu sair / sair da conexão SSH, preciso que meu programa seja executado em segundo plano. Antes de sair, digito bge jobspara verificar a tarefa em 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 após fechar a janela SSH? Eu uso, nohup screenmas também não funciona, ou estou perdendo alguma coisa?


Bem-vindo ao Super Usuário! Por favor, não coloque sua resposta na pergunta. Poste-a como resposta abaixo assim que puder (em cerca de 7 horas) usando o botão Responda à sua pergunta . Obrigado. (Observe também que não há necessidade de adicionar <br/>s para o seu posto apenas fazer parágrafos conforme necessário E enquanto você está nisso, por favor use a capitalização apropriada Faz suas mensagens mais fácil de ler....)
slhck

BTW não há necessidade de usar bgou nohupao usar screen. Também esta questão está relacionada.
justbrowsing

você faz verificar esta discussão @ estouro de pilha stackoverflow.com/questions/285015/...
Ashildr

Respostas:


46

Quando você usa, screené necessário desanexar com CTRL+A+ Dantes de sair ssh.

Como alternativa, se você deseja executar um processo diretamente com a tela, pode usar

screen -dmSL [session name] [commands]
  • -d inicia uma sessão na tela e se desconecta imediatamente
  • -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 log para ~/screenlog.0

exemplo:

screen -dmSL workstuff myscript.sh

Você pode:

retomar mais tarde usando screen -x workstuff

ou

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


14

Use tmux. Não tenho certeza se screenainda está em desenvolvimento ativo. É uma espécie de preferência, mas como alguém que usa tmux, posso testemunhar que ele 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 entre tmuxpara entrar, execute o processo que você precisa e pressione Ctrl+ e Bdepois D(isso sai da sessão do tmux). Em seguida, você pode sair do SSH.

Quando precisar voltar / verificar novamente, inicie o SSH e digite tmux attach. O levará de volta à sua tmuxsessão.

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

Boa sorte!


7

Por fim, resolvi usando screen:

No modo de tela, desconecte-o usando CtrlAD. Então você pode fechar a janela SSH.


5

nohup use: O primeiro dos comandos abaixo inicia o programa abcd em segundo plano, de forma que o logoff subsequente não o interrompa.

$ nohup abcd &

$ exit

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.