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