come ricaricare nginx - systemctl o nginx -s?


24

C'è una differenza tra chiamare

systemctl reload nginx

e chiamando

nginx -s reload

?

So che, oltre a systemd, ci sono altri sistemi init come SysV e Upstart. Quindi forse questa domanda si applica anche a loro.

È preferibile emettere questo comando attraverso il sistema init o posso semplicemente chiamare nginx stesso?

Grazie in anticipo


1
In realtà se il tuo sistema lo supporta, preferirei usare serviceo init.d, comesudo service nginx reload
Mohammad AbuShady,

Risposte:


23

Puoi scoprire cosa systemd reload nginxfarà guardando l' ExecReload=opzione nella [Service]sezione del nginx.servicefile unit (che si trova /usr/lib/systemd/system/nginx.servicesul mio sistema):

$ systemctl cat nginx | grep ExecReload=

O eseguendo:

$ systemctl show nginx.service --property=ExecReload

Sul mio sistema, ottengo:

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

Da 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

Così systemctl reload nginxe nginx -s reloadsarà, quasi , fare la stessa cosa.

Le differenze sono:

  • systemctl reload nginx eseguirà il comando in un ambiente pulito (e non nell'ambiente utente corrente);
  • systemctl reloadfunziona per qualsiasi servizio che lo consente (che è stato configurato nel file di unità). Non è necessario ricordare i comandi specifici del servizio. Questo è ancora più interessante se si hanno diverse istanze di un servizio.

L'uso serviceo gli init.dscript sono modi legacy / deprecati di fare la stessa cosa. Sebbene possano funzionare, non sono più supportati né consigliati su un sistema basato su systemd.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.