Isso é mais do que uma pergunta, cada uma pode ter respostas longas. Brevemente
-
Se eu iniciar um programa em segundo plano usando & (por exemplo './script &'), o que torna a execução deste processo diferente de se eu corresse normalmente um programa que se transforma em um daemon?
Executando um programa em segundo plano, ele não é mais diretamente controlado pelo terminal (você não pode simplesmente
^C
dele), mas ele ainda pode gravar no terminal e interferir no seu trabalho. Normalmente, um daemon se separará do terminal (além de bifurcação) e sua saída / erro será redirecionada para os arquivos. -
Isso significa simplesmente que, se eu efetuar o logout, o processo em background parará e o daemon continuará funcionando?
O processo de segundo plano pode ser protegido com
nohup
, mas, a menos que sua saída seja redirecionada, o fechamento do terminal impediria sua gravação, produzindo um erro que provavelmente o impediria. -
Eu gostaria de saber se há algum risco / se é uma má prática.
Além do problema de manter o controle da saída do programa (e das mensagens de erro), existe o problema de reiniciá-lo se ele morrer. Um script de serviço se encaixa na maneira como os outros serviços no sistema são projetados, fornecendo uma maneira mais / menos padrão de controlar o daemon.