jak przeładować nginx - systemctl lub nginx -s?


24

Czy istnieje różnica między telefonowaniem?

systemctl reload nginx

i dzwonienie

nginx -s reload

?

Wiem, że oprócz systemd istnieją inne systemy inicjujące, takie jak SysV i Upstart. Więc może to pytanie dotyczy również ich.

Czy lepiej wydać to polecenie za pośrednictwem systemu init, czy mogę po prostu wywołać sam nginx?

Z góry dziękuję


1
Właściwie, jeśli twój system to obsługuje, wolałbym używać servicelub init.d, jaksudo service nginx reload
Mohammad AbuShady,

Odpowiedzi:


23

Możesz dowiedzieć się, co systemd reload nginxzrobisz, patrząc na ExecReload=opcję w [Service]sekcji nginx.servicepliku jednostkowego (znajdującą się w /usr/lib/systemd/system/nginx.servicemoim systemie):

$ systemctl cat nginx | grep ExecReload=

Lub uruchamiając:

$ systemctl show nginx.service --property=ExecReload

W moim systemie otrzymuję:

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

Od 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

W ten sposób systemctl reload nginxi nginx -s reloadbędzie prawie , zrobić to samo.

Różnice są następujące:

  • systemctl reload nginx wykona polecenie w czystym środowisku (a nie w bieżącym środowisku użytkownika);
  • systemctl reloaddziała dla każdej usługi, która na to pozwala (która została skonfigurowana w pliku jednostkowym). Nie trzeba pamiętać poleceń specyficznych dla usługi. Jest to jeszcze bardziej interesujące, jeśli masz kilka wystąpień usługi.

Korzystanie servicelub init.dskrypty są starsze / przestarzałe sposoby robienia tego samego. Chociaż mogą działać, nie są już obsługiwane ani zalecane w systemie opartym na systemie.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.