Você pode descobrir o que systemd reload nginx
fará consultando a ExecReload=
opção na [Service]
seção no nginx.service
arquivo da unidade (localizada /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á, 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 reload
funciona 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 service
ou init.d
scripts 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.
service
ouinit.d
, comosudo service nginx reload