PuTTY ou OTHER - Continue executando o comando mesmo depois de sair do PuTTY [duplicado]

13

Eu tenho alguns comandos que preciso executar. Esses comandos precisam ser executados continuamente depois que eu saio da minha interface. Quando eu tenho acesso ao Linux GUI, eu executo algo como:

cd /home/testuser/Scripts*
xterm -hold -T "Background_Script1" -e  "service1-start.sh" &
sleep 10
xterm -hold -T "Background_Script2" -e "service2-start.sh" &

Qualquer ajuda será muito apreciada.

    
por user3331952 18.11.2014 / 10:12

5 respostas

33

Tente

nohup Background_ScriptX &

nohup garante que um processo não seja finalizado quando um terminal é fechado. O & símbolo empurra o processo para o fundo.

Espero que isso tenha sido útil.

    
por 18.11.2014 / 11:20
20

Se você quiser ler a saída em uma data posterior, use screen :

screen -d -m my_command

Isto lhe dá um terminal destacado ao qual você pode se conectar ( screen -r ) para ler a saída stdout / stderr.

    
por 18.11.2014 / 23:29
6

Outra opção se o comando nohup não estiver disponível é usar o desiste do comando.

Primeiro, você pode ver suas tarefas em segundo plano executando jobs no terminal. Você pode obter o número do trabalho de lá.

Agora é só executar disown %[job number] e o processo será desanexado do terminal atual e permanecerá ativo quando você sair.

Nota lateral: verifique se você está fazendo a pergunta correta. Se você estiver executando serviços reais à medida que insinuar em sua amostra, talvez queira investigar como criar um daemon no SO de sua escolha. Isso é para garantir que o processo ainda seja executado após uma reinicialização e para torná-lo mais consistente com outros serviços.

Espero que isso ajude.

    
por 18.11.2014 / 16:28
3

Como screen foi mencionado: existem outros multiplexadores de terminal lá fora. Eu gosto muito de tmux , veja por exemplo esta outra pergunta de superusuário, tela vs tmux para uma comparação.

    
por 19.11.2014 / 11:17
0

Você também pode tentar: setsid O Setsid também funciona para programas em segundo plano e permite que eles continuem rodando após a sessão do terminal / ssh ser desconectada.

Use assim:

setsid program-to-background

Página principal: link

    
por 19.11.2014 / 21:20