Назад | Перейти на главную страницу

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 быть готовым при вызове скрипта? Я предполагал, что $ с именем в «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