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.
serviceouinit.d, comosudo service nginx reload