E agora, a resposta do Ubuntu.
Você está usando o Ubuntu Linux. Você já tem upstart ou systemd (o primeiro neste caso particular). Não comece escrevendo System 5 rc
scripts.
/etc/rc.local
é um mecanismo de compatibilidade com versões anteriores, pois é um mecanismo de compatibilidade com versões anteriores para um mecanismo que era em si um mecanismo de compatibilidade no System 5 rc
. E como mostrado pela confusão que os endereços link , usar /etc/rc.local
pode dar errado. Não comece usando rc.local
.
upstart e versão 14
Portanto, escreva um arquivo de job upstart.
Seria algo parecido com isto:
# /etc/init/dtnd.conf description "DTN2 daemon" start on filesystem and static-network-up stop on runlevel [016] env DAEMON='/usr/sbin/dtnd' respawn exec /usr/sbin/dtnd -c /etc/dtn/dtn.conf -o /var/log/dtn/log
Ajuste para o seu log e configuração configurada; e usar como um trabalho inicial, da maneira usual, com initctl start
, initctl stop
e assim por diante.
Não use a opção -d
. O programa é já "daemonizado" por ser executado sob um gerenciador de serviços.
systemd e versão 15
Portanto, escreva uma unidade de serviço systemd.
A primeira regra para migrar para o systemd se aplica ... ainda novamente. Alguém já fez isso. Por exemplo, veja dtnd.service
escrito por um pseudônimo em 2012.
Novamente: Não use a opção -d
. O programa é já "daemonizado" por ser executado sob um gerenciador de serviços.
Observe também que você não precisa da opção -o
. Registre na saída padrão / erro padrão no modo ordinário, e o systemd gravará no diário.
Use como um serviço systemd, da maneira usual, com systemctl start
, systemctl stop
, systemctl status
e assim por diante. Em particular, use systemctl enable
para garantir que o serviço seja iniciado automaticamente na inicialização do sistema.