Compreender quando o processo em segundo plano é encerrado

Compreender quando o processo em segundo plano é encerrado

Eu tenho um script que inicia vários processos em segundo plano e funciona bem quando chamado do cmdline.

No entanto, o mesmo script também é chamado durante a inicialização do xsession e adicionalmente 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. Tentei resolver invocando os processos bg com start_stop_deamon --background, mas isso não faz diferença. No entanto, 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 resolver meu problema imediato (embora qualquer ajuda seja muito apreciada), estou ansioso para entender a lógica por trás de tudo isso. Suspeito de algo relacionado à ausência de terminal.

Responder1

Proteja seus processos com nohup:

nohup command-name &

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

command-name & disown

informação relacionada