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