ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf

Konstantin Pavlov thresh на nginx.com
Пт Ноя 10 14:37:54 UTC 2017


On 09/11/2017 17:57, Gena Makhomed wrote:
> On 09.11.2017 15:56, Konstantin Pavlov wrote:
> 
>>> В чем смысл директивы
>>>
>>> ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
>>>
>>> в файле /usr/lib/systemd/system/nginx.service ?
> 
> В инит-скрипте CentOS 6 все сделано правильно, там конфиг тестируется
> только перед тем как выполнить рестар сервера:
> 
> restart() {
>     configtest_q || return 6
>     stop
>     start
> }
> 
> configtest_q() {
>   $binary -t -q -c $config
> }
> 
> и если тестирование конфигурации завершилось ошибкой -
> работающий nginx не останавливаается.

Это, кстати, не работает в systemd-мире и не сказать, что бы это сильно заботило авторов: https://github.com/systemd/systemd/issues/2175

> В юнит-файле CentOS 7 эта строчка
> 
> ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
> 
> выглядит совершенно лишней и не нужной, она только создает проблемы.
> 
> Может быть имеет смысл вообще убрать строку
> 
> ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
> 
> из юнит-файла? Хуже от этого ведь не станет, только лучше.
> 
> Или я ошибаюсь и в этой строчке есть какой-смысл? Какой?
Не ошибаетесь.

-- 
Konstantin Pavlov
www.nginx.com


Подробная информация о списке рассылки nginx-ru