Serviço de início automático na inicialização que depende da rede

6

Eu tenho um serviço específico (neste caso, o OpenFire) que é executado na inicialização. Quando ele é iniciado, ele tenta se conectar a um banco de dados em um determinado nome de host. No momento da inicialização, ele não consegue se conectar a esse banco de dados porque não consegue localizar o host no DNS.

Meu melhor palpite é que este serviço está sendo executado na inicialização antes que a rede seja inicializada e os servidores DNS tenham sido obtidos do DHCP. Existe alguma maneira de especificar as dependências do serviço de inicialização que devem ser atendidas antes de executar o script /etc/init.d/ ?

    
por roktechie 08.09.2010 / 16:05

3 respostas

1

Você pode procurar em /etc/rc0.d pelo serviço, ele terá S ## [nome], isto é, - S35networking

Então, se você disser S36openfire, ele deverá ser carregado logo após a rede. Ou faça o número 99 e ele será carregado por último, dando tempo para que a rede faça o trabalho.

Espero que faça o truque para você.

    
por Eternal Wolf 08.09.2010 / 17:20
3

Esqueça o upstart. Existem maneiras muito mais fáceis de fazer isso. Coloque um script que lance o Openfire aqui:

 /etc/network/if-up.d/

Se o openfire tiver que ser executado como seu usuário, algo como:

#!/bin/sh
su -c "openfire" myUserName

Certifique-se de marcá-lo como executável:

sudo chmod +x /etc/network/if-up.d/openfire

Da mesma forma, você pode fechar o openfire, quando perder sua conexão de rede, colocando um script em /etc/network/if-down.d/ que o mata:

#!/bin/sh
killall openfire
    
por Ralf 10.09.2010 / 17:42
-1

se você não configurar sua rede usando o NetworkManager, poderá tentar configurar seu conf upstart para depender da rede:

start on starting networking

ou

start on starting network-interface

Eu não sei como ele interage com o NetworkingManager, talvez o NM acione alguns eventos que são detectáveis por meio do upstart.

    
por ithkuil 10.09.2010 / 18:33