У меня есть установка dnsmasq на человечности 14.04. dnsmasq часть хорошо работает. Однако на начальной загрузке, dnsmasq работает, ПРЕЖДЕ ЧЕМ eth0 произошел. Это заставляет dnsmasq не отвечать на запросы на eth0. В системном журнале я вижу, что dnsmasq запуститься и приблизительно 3 секунды спустя eth0 подходит.
Если я просто перезапускаю dnsmasq, все в порядке.
Я попытался переместить порядок dnsmasq вокруг в rd2.d. Я могу стать ближе, но это все еще работает сначала.
Есть ли способ вынудить это ожидать eth0, чтобы произойти или там способ вызвать 10-секундную задержку, прежде чем dnsmasq запустится. Возможно, существует скрипт, который я могу запустить в rc2.d для остановки целого процесса init в течение нескольких секунд? (Это - сервер, который редко снижается, я не забочусь, требуется ли несколько дополнительных секунд для перезапуска),
(как примечание стороны: системный журнал также говорит мне, что что-либо, чему нужен DNS во время начальной загрузки, также раздражается, что dnsmasq не работает),
Я зафиксировал это, не изменяя книжный порядок. Просто добавьте:
After=network-online.target
Wants=network-online.target
к [Unit]
раздел /lib/systemd/system/dnsmasq.service
https://bugs.launchpad.net/ubuntu / + source/dnsmasq / + ошибка/1531184
См. http://smallbusiness.chron.com/change-start-order-processes-linux-61730.html для получения информации об изменяющемся порядке процессов во время начальной загрузки.
процесс, который запускает eth0, должен быть "сетью", таким образом, я ожидаю, что в Вашем/etc/rc3.d или/etc/rc5.d каталогах, сеть установлена запустить после dnsmasq.
Не напрямую для Ubuntu, но у меня есть это для ОС raspberry pi, и ЕДИНСТВЕННЫЙ способ заставить это работать — поместить его в crontab,
Итак: отключить его при запуске:
sudo update-rc.d dnsmasq disable
открыть crontab. ЕСЛИ это первый раз, выберите nano по умолчанию
crontab -e
добавьте:
@reboot sudo service dnsmasq start
сохраните и выйдите. Я использовал nano so
ctrl + o
ctrl + x
Наконец заработало через 3 часа.