nginx não será iniciado na inicialização usando o systemd

2

Estou usando o nginx principalmente como um proxy http (s), para isso eu preciso provisionar alguns nomes de domínio, que o nginx tenta resolver (DNS) na inicialização.

Se eu inicio o nginx manualmente (usando systemctl start) depois que o pc foi completamente inicializado, isso funciona muito bem, porém quando eu o habilito para o autostart eu recebo o seguinte problema (mydomainname é algo que normalmente seria resolvido, eu apenas escondi aqui):

$ systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sat 2016-02-13 10:41:47 CET; 45min ago
  Process: 844 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=1/FAILURE)

Feb 13 10:41:47 mysystem systemd[1]: Starting A high performance web server and a reverse proxy server...
Feb 13 10:41:47 mysystem nginx[844]: nginx: [emerg] host not found in upstream "mydomainname" in /etc/nginx/sites-enabled/default:8
Feb 13 10:41:47 mysystem nginx[844]: nginx: configuration file /etc/nginx/nginx.conf test failed
Feb 13 10:41:47 mysystem systemd[1]: nginx.service: Control process exited, code=exited status=1
Feb 13 10:41:47 mysystem systemd[1]: Failed to start A high performance web server and a reverse proxy server.
Feb 13 10:41:47 mysystem systemd[1]: nginx.service: Unit entered failed state.
Feb 13 10:41:47 mysystem systemd[1]: nginx.service: Failed with result 'exit-code'.

Estou usando o ubuntu 15.10, eu uso o pacote nginx padrão. O que eu já tentei:

  • Altere After no script systemd de network.target para network-online.target
  • Adicione nss-lookup.target ao After
  • Coloque em todos os três: network.target network-online.target nss-lookup.target

Mas continua dando esse erro.

    
por KillianDS 13.02.2016 / 11:37

1 resposta

1

Após algumas pesquisas, descobri que o componente que permite que o systemd espere o gerenciador de rede concluir não está habilitado por padrão. Depois de ativar isso da seguinte maneira, funciona perfeitamente:

sudo systemctl enable NetworkManager-wait-online.service
    
por KillianDS 14.02.2016 / 18:29