Debian 8 / init.d: iniciar o daemon depois que “$ named” estiver pronto

1

Eu estou tentando iniciar um daemon init.d no Debian 8 após a rede e o DNS estarem funcionando. Esse é o script que estou usando:

### BEGIN INIT INFO
# Provides:          local_daemon
# Required-Start:    $all $local_fs $remote_fs $network $named $time $syslog
# Required-Stop:     $all $local_fs $remote_fs $network $named $time $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Starts a Daemon.
# Description:       Starts a custom daemon.
### END INIT INFO

Eu tenho vários servidores e isso funciona principalmente. No entanto, em alguns casos, o DNS ainda não está pronto quando o script é chamado. Portanto, o daemon não pode se conectar a www.domain.com enquanto é executado. Eventualmente, o DNS está pronto, mas é depois que o script é executado (não no momento em que é executado).

Pergunta: Como posso forçar o DNS a ficar pronto quando o script é chamado? Minha suposição é que $ nomeado em "Início-obrigatório:" é responsável pelo DNS estar pronto e pronto. Este não parece ser o caso. Como posso forçar um script a ser executado somente quando a resolução de nomes de domínio (DNS) & a rede está pronta?

EDIT 2017-01-26 : obrigado pelo feedback. É um servidor LIVE e minhas habilidades em Linux são rudimentares na melhor das hipóteses. Eu prefiro não quebrar as coisas enquanto elas estiverem funcionando bem. De qualquer forma, eu me acomodei com um sono de 20 segundos antes do servidor ser iniciado, o que parece estar funcionando bem. Sim, estou muito ciente de que isso é um "hack":

start() {
  # wait a while to make sure the network is ready!
  sleep 20

  # run the server
  ...
}

case "$1" in
start)
  # starts the server in a separate thread
  start &
  ;;
stop)
  # stop: we do nothing special
  ;;
*)
  ;;
esac
exit 0
    
por noblemaster 25.01.2017 / 09:02

0 respostas