como recarregar nginx - systemctl ou nginx -s?


24

Existe uma diferença entre chamar

systemctl reload nginx

e chamando

nginx -s reload

?

Eu sei que, além do systemd, existem outros sistemas init como o SysV e o Upstart. Então, talvez essa pergunta se aplique a eles também.

É preferível emitir este comando através do sistema init ou posso apenas chamar o próprio nginx?

desde já, obrigado


11
Na verdade, se o seu sistema suporta, eu preferiria usar serviceou init.d, comosudo service nginx reload
Mohammad AbuShady

Respostas:


23

Você pode descobrir o que systemd reload nginxfará consultando a ExecReload=opção na [Service]seção no nginx.servicearquivo da unidade (localizada /usr/lib/systemd/system/nginx.serviceem meu sistema):

$ systemctl cat nginx | grep ExecReload=

Ou executando:

$ systemctl show nginx.service --property=ExecReload

No meu sistema, recebo:

ExecReload=/usr/bin/kill -HUP $MAINPID

De nginx(8):

-s signal      Send a signal to the master process. The argument signal
               can be one of: stop, quit, reopen, reload. The following
               table shows the corresponding system signals:

               stop    SIGTERM
               quit    SIGQUIT
               reopen  SIGUSR1
               reload  SIGHUP

Assim, systemctl reload nginxe nginx -s reloadirá, quase , fazer a mesma coisa.

As diferenças são:

  • systemctl reload nginx executará o comando em um ambiente limpo (e não no ambiente atual do usuário);
  • systemctl reloadfunciona para qualquer serviço que permita (que o tenha configurado no arquivo da unidade). Não há necessidade de lembrar comandos específicos de serviço. Isso é ainda mais interessante se você tiver várias instâncias de um serviço.

O uso serviceou init.dscripts são maneiras herdadas / obsoletas de fazer a mesma coisa. Embora possam funcionar, eles não são mais suportados nem recomendados em um sistema baseado em systemd.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.