Compreendendo quando o processo de segundo plano é finalizado

5

Eu tenho um script que inicia um número de processos em segundo plano e se funciona bem quando chamado a partir do cmdline.

No entanto, o mesmo script também é chamado durante minha inicialização do xsession e, além disso, em alguns eventos do udev. Em ambos os casos, os processos em segundo plano desaparecem.

Eu coloquei um sleep 10 no script e pude ver que os processos bg foram realmente iniciados, mas uma vez que o script existe, ele leva os processos bg com ele. Eu tentei resolver invocando os processos bg com start_stop_deamon --background , mas isso não faz diferença. Hoever, eu posso invocar o script de um console e sair da sessão e os processos bg ainda estão em execução.

Além de consertar meu problema imediato (embora qualquer ajuda seja muito apreciada), estou ansioso para entender a lógica por trás de tudo isso. Eu suspeito de algo relacionado à ausência de um terminal.

    
por Martin Drautzburg 29.04.2013 / 21:38

1 resposta

2

Proteja seus processos com nohup :

nohup command-name &

Você também pode usar essa técnica se quiser ignorar o redirecionamento stdout e stderr para nohup.out:

command-name & disown
    
por 29.04.2013 / 21:51