A função de script de inicialização do LSB “start_daemon” é realmente usada para daemons reais ou devo ficar com start-stop-daemon?

1

No contexto dos scripts de inicialização, de acordo com o LSB especificação , "Cada script init em conformidade deve executar os comandos no arquivo / lib / lsb / init-function", que define algumas funções a serem usadas ao usar daemons. Uma dessas funções é start_daemon , que obviamente "executa o programa especificado como um daemon" enquanto verifica se o daemon já está em execução.

Eu estou no processo de daemonização de um aplicativo de serviço meu e estou observando como outros daemons são executados para tentar "encaixar". No processo de observar como isso é feito em outro lugar, notei que nem um único daemon na minha máquina Ubuntu 10.04 usa o start_daemon. Todos eles chamam start-stop-daemon diretamente. O mesmo vale para minha máquina Fedora 14. Devo tentar jogar bem e ser o primeiro a usar start_daemon, ou não há realmente nenhum ponto e start-stop-daemon é o caminho a percorrer já que todo mundo já está usando isso? Por que não há daemons usando as funções do LSB?

    
por Fred 07.02.2011 / 23:19

2 respostas

2

No meu sistema, a maioria dos scripts usa start-stop-daemon , mas dois, exim4 e incron use start-daemon .

Se você deseja escrever scripts para portabilidade e estar em conformidade com o LSB, use start_daemon . No Ubuntu, ele é implementado como um simples wrapper para start-stop-daemon .

Se você precisar da granularidade de argumento fornecida por start-stop-daemon , use-a.

    
por 08.02.2011 / 00:29
1

No Debian (bem, Ubuntu), o pacote lsb-base tem o readme (em /usr/share/doc/lsb-base/README.Debian.gz ) que diz:

Note: Debian packages probably should use start-stop-daemon directly; however, these functions may be useful in porting init scripts from other distributions.

Portanto, o software empacotado especificamente para o Debian geralmente usa start-stop-daemon . Eu posso imaginar que o software portado de outro sistema pode usar start_daemon , embora se o outro sistema tiver uma política semelhante, então o software não estaria usando start_daemon em primeiro lugar, então pode não ser mais fácil portá-lo usando start_daemon than start-stop-daemon . Eu também posso imaginar que o software que é empacotado para muitos sistemas pode usar start_daemon , para habilitar um script de inicialização portátil. Exim pode ser um bom exemplo disso.

Pessoalmente, acho que o conselho do readme é terrível, beirando o criminoso. Nós temos um padrão; se todos aderirem a ele, o software será mais portátil, o que é uma coisa boa. Aconselhar as pessoas a não usarem o padrão passa a oportunidade de tornar o mundo um lugar melhor.

    
por 18.06.2012 / 13:33

Tags