Iniciando o nginx na inicialização com o systemd, Raspbian 8 (jessie)?

2

Recebi o seguinte erro ao tentar iniciar o nginx na inicialização em Raspbian GNU/Linux 8 (jessie)

● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
   Active: failed (Result: exit-code) since Sun 2016-08-07 10:38:50 EDT; 1min 10s ago
  Process: 478 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=1/FAILURE)

Minha configuração funciona bem, e eu consigo iniciar o nginx depois de fazer o login; mas não consigo fazer o systemd para iniciá-lo.

Aqui está o meu arquivo de unidade:

# Stop dance for nginx
# =======================
#
# ExecStop sends SIGSTOP (graceful stop) to the nginx process.
# If, after 5s (--retry QUIT/5) nginx is still running, systemd takes control
# and sends SIGTERM (fast shutdown) to the main process.
# After another 5s (TimeoutStopSec=5), and if nginx is alive, systemd sends
# SIGKILL to all the remaining processes in the process group (KillMode=mixed).
#
# nginx signals reference doc:
# http://nginx.org/en/docs/control.html
#
[Unit]
Description=A high performance web server and a reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload
ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid
TimeoutStopSec=5
KillMode=mixed

[Install]
WantedBy=multi-user.target

/lib/systemd/system/nginx.service

Qual alvo eu preciso começar depois? Eu já tentei network-online.target (o que faria mais sentido e receberia o mesmo resultado.

Atualizar

Mudei algumas coisas graças a esta postagem e consegui iniciar o nginx. .mas ainda falha com um erro.

  1. /etc/systemd/system/mult-user.target.wants/nginx.service modificada para incluir:
    1. After=network-online.target
    2. %código%
      1. Antes era Wants=network-online.target
  2. Ran After=network.target , para começar isso (porque sudo systemctl enable systemd-networkd-wait-online.service não pode ser ativado usando network-online.target )
  3. Ran sudo systemctl enable network-online.target
  4. Reiniciado ...
  5. Após a reinicialização, executei sudo systemctl enable nginx e procurei por systemd-analyze plot > something.svg no arquivo, e ele estava presente, mas não foi iniciado com êxito, o que me deu um erro sobre o meu servidor proxy reverso ... o qual estou Não tenho certeza de como resolver, mas esse é um tópico para outra pergunta.

Abaixo está a imagem que recebi do gráfico systemd-analyse:

Noentanto...depoisdeinicializaramáquinaeexecutarnginx.service,eleéiniciadosemproblemas.

Aquiestáamensagemdeerrodologdeerros:

2017/05/1613:12:53[emerg]555#0:hostnotfoundinupstream"somehost.somedomain.lan" in /etc/nginx/sites-enabled/siteconf:41

Aqui está a linha de configuração em questão:

server {
     listen     80; ## listen for ipv4; this line is default and implied
    #listen   [::]:80 default_server ipv6only=on; ## listen for ipv6

    # Make site accessible from http://localhost/
    server_name somehost somehost.somedomain.lan;

    # Note: There should never be more than one root in a 
    #       virtual host
    #   Also there should never be a root in the location.
    #root /var/www/nginx/;

         location ^~ / {
            resolver 127.0.0.1 valid=300s; # NOTE: Added this to resolve it.
            access_log ./logs/RootWiki_access.log;
            error_log ./logs/RootWiki_error.log;
            proxy_buffers 16 4k;
            proxy_buffer_size 2k;
            proxy_set_header Host $host;
            proxy_set_header X-Real_IP $remote_addr;
            rewrite /(.*) /$1 break;
            proxy_pass http://wiki.leerdomain.lan:8080; # NOTE: This one causes the error according to the error log.
        }
    
por leeand00 07.08.2016 / 16:47

1 resposta

0

Tenho esse trabalho:

# Stop dance for nginx
# =======================
#
# ExecStop sends SIGSTOP (graceful stop) to the nginx process.
# If, after 5s (--retry QUIT/5) nginx is still running, systemd takes control
# and sends SIGTERM (fast shutdown) to the main process.
# After another 5s (TimeoutStopSec=5), and if nginx is alive, systemd sends
# SIGKILL to all the remaining processes in the process group (KillMode=mixed).
#
# nginx signals reference doc:
# http://nginx.org/en/docs/control.html
#
[Unit]
Description=A high performance web server and a reverse proxy server
After=muli-user.target
Requires=network-online.target


[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload
ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid
TimeoutStopSec=5
KillMode=mixed

[Install]
WantedBy=multi-user.target

na seção Unit , adicionei o seguinte:

[Unit]
# ...
After=muli-user.target
Requires=network-online.target

/lib/systemd/system/nginx.service

Eu também corri o seguinte no bash:

$ sudo systemctl enable nginx

e depois para garantir que o link simbólico apareça:

$ ls -la /etc/systemd/system/multi-user.target/wants
...
lrwxrwxrwx  1 root root   33 May 14  2016 nginx.service -> /lib/systemd/system/nginx.service
...

e depois recarregue os daemons:

$ sudo systemctl daemon-reload

e finalmente reboot e veja se está lá:

$ sudo systemctl status --state active | grep nginx

    
por 30.01.2018 / 21:15