Debian 8/init.d: ​​запустить демон после того, как $named будет готов

Я пытаюсь запустить демон init.d в Debian 8 после того, как сеть и DNS запущены и работают. Вот скрипт, который я использую:

### 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

У меня есть несколько серверов, и это в основном работает. Однако в некоторых случаях DNS еще не готов при вызове сценария. Таким образом, демон не может подключиться, например, к www.domain.com во время работы. В конце концов DNS готов, но это после того, как скрипт запущен (а не во время его запуска).

Вопрос: Как заставить DNS быть готовым при вызове скрипта? Я предположил, что $named в "Required-Start:" отвечает за настройку и готовность DNS. Это не похоже на случай. Как заставить сценарий выполняться только тогда, когда разрешение доменного имени (DNS) и работа в сети готовы?

РЕДАКТИРОВАТЬ 2017-01-26: спасибо за отзыв. Это LIVE-сервер, и мои навыки работы с Linux в лучшем случае зачаточны. Я бы лучше не ломал вещи, пока они работают нормально, иначе. Во всяком случае, я остановился на 20 секунд до запуска сервера, который, кажется, работает нормально. Да, я очень хорошо понимаю, что это "взлом"

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

0 ответов

Другие вопросы по тегам