Problema ao iniciar um processo demônio na inicialização no Ubuntu

0

Eu tentei iniciar o processo Deamon. Eu estou tentando executar este comando durante a inicialização para iniciar o deamon DTN2 usando o comando dtnd -c DTN2/dtn/dtn.conf -o DTN2/dtn/log -d no ubuntu 14.04

Eu fiz isso como um script de shell em um local no meu computador e o adicionei em rc.local , por exemplo, sh '/pathtoscript/script.sh' . Funciona quando eu uso sudo /etc/init.d/rc.local start . No entanto, não está começando após o reinício. Como posso ter certeza de que isso funcione? Criando um script usando init.d ou adicionando um trabalho Upstart seria melhor maneira de executar o deamon na inicialização do Ubuntu 14.04.

    
por Don 08.12.2015 / 21:11

1 resposta

0

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 é "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 é "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.

    
por JdeBP 09.12.2015 / 14:36