Вы можете узнать, что будет делать systemd reload nginx , посмотрев параметр ExecReload= в разделе [Service] в файле модуля nginx.service (находится в /usr/lib/systemd/system/nginx.service в моей системе):
$ systemctl cat nginx | grep ExecReload=
Или запустив:
$ systemctl show nginx.service --property=ExecReload
В моей системе я получаю:
ExecReload=/usr/bin/kill -HUP $MAINPID
Из 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
Таким образом, systemctl reload nginx и nginx -s reload , почти , сделают одно и то же.
Различия:
systemctl reload nginx выполнит команду в чистой среде (а не в текущей пользовательской среде);
systemctl reload работает для любой службы, которая позволяет это (которая настроена в файле модуля). Не нужно помнить конкретные сервисные команды. Это еще более интересно, если у вас есть несколько экземпляров службы.
Использование сценариев service или init.d является устаревшим / устаревшим способом сделать то же самое. Хотя они могут работать, они не поддерживаются и не рекомендуются в системной системе.