Você pode descobrir o que o systemd reload nginx
fará observando a opção ExecReload=
na seção [Service]
no arquivo nginx.service
unit (localizado em /usr/lib/systemd/system/nginx.service
em 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 nginx
e nginx -s reload
irão, quase , fazer o mesmo.
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 reload
funciona para qualquer serviço que o permita (que foi configurado no arquivo da unidade). Não há necessidade de lembrar comandos específicos do serviço. Isso é ainda mais interessante se você tiver várias instâncias de um serviço.
Usar os scripts service
ou init.d
são formas legadas / obsoletas de fazer a mesma coisa. Embora possam funcionar, eles não são mais suportados nem recomendados em um sistema baseado em systemd.