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.