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