Вы можете узнать, что будет делать 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 является устаревшим / устаревшим способом сделать то же самое. Хотя они могут работать, они не поддерживаются и не рекомендуются в системной системе.