Eu consertei isso sem alterar a ordem do livro. Apenas adicione:
After=network-online.target
Wants=network-online.target
para a seção [Unit]
de /lib/systemd/system/dnsmasq.service
Eu configurei o dnsmasq no ubuntu 14.04. A parte dnsmasq funciona bem. No entanto, na inicialização, o dnsmasq é executado ANTES de eth0 ser ativado. Isso faz com que o dnsmasq não responda a consultas no eth0. No syslog eu posso ver o dnsmasq iniciar e cerca de 3 segundos depois o eth0 aparece.
Se eu apenas reiniciar o dnsmasq está tudo bem.
Eu tentei mover a ordem do dnsmasq por volta de rd2.d. Eu posso chegar mais perto, mas ainda funciona primeiro.
Existe uma maneira de forçá-lo a esperar que o eth0 esteja ativo, ou existe uma maneira de forçar um atraso de 10 segundos antes que o dnsmasq inicie. Talvez haja um script que eu possa executar no rc2.d para interromper todo o processo de inicialização por alguns segundos? (Este é um servidor que raramente está em baixo, eu não me importo se leva alguns segundos extras para reiniciar)
(como uma observação: o syslog também me diz que qualquer coisa que precise de DNS durante o boot também está irritada porque o dnsmasq não está rodando)
Consulte o link para obter informações sobre como alterar a ordem dos processos durante a inicialização.
O processo que inicia a eth0 deve ser "network", então espero que em seus diretórios /etc/rc3.d ou /etc/rc5.d, a rede esteja configurada para inicializar após dnsmasq.