Есть ли разница между звонками
systemctl reload nginx
и звонит
nginx -s reload
?
Я знаю, что помимо systemd существуют и другие системы инициализации, такие как SysV и Upstart. Так что, возможно, этот вопрос относится и к ним.
Желательно ли вводить эту команду через систему инициализации или я могу просто вызвать сам nginx?
заранее спасибо
service
илиinit.d
, какsudo service nginx reload
Ответы:
Вы можете узнать, что
systemd reload nginx
будет делать, посмотрев наExecReload=
опцию в[Service]
разделеnginx.service
файла модуля (расположенного в/usr/lib/systemd/system/nginx.service
моей системе):Или запустив:
В моей системе я получаю:
От
nginx(8)
:Так
systemctl reload nginx
иnginx -s reload
будет, почти , делать то же самое.Различия:
systemctl reload nginx
выполнит команду в чистой среде (а не в текущей пользовательской среде);systemctl reload
работает для любой службы, которая позволяет это (которая настроена в файле модуля). Не нужно помнить конкретные сервисные команды. Это еще более интересно, если у вас есть несколько экземпляров службы.Использование
service
илиinit.d
сценарии являются устаревшими / устаревшими способами сделать то же самое. Хотя они могут работать, они не поддерживаются и не рекомендуются в системной системе.источник
В настоящее время существует разница в Centos 7 и RHEL 7. Использование systemctl reload nginx НЕ подтвердит вашу конфигурацию.
Смотрите следующую ошибку: https://bugzilla.redhat.com/show_bug.cgi?id=1565377
Поэтому я бы посоветовал использовать nginx -s reload или обновить файл модуля nginx, чтобы использовать следующую команду reload:
https://bugzilla.redhat.com/attachment.cgi?id=1419614&action=diff
источник