Re: [bugreport] nginx -t возвращает 0 код завершения при наличии ошибок в конфиге

Gena Makhomed gmm на csdoc.com
Вс Авг 22 23:28:09 MSD 2010


On 06.08.2010 5:44, Maxim Dounin wrote:

>>>> случайно сделал несколько ошибок в конфиге,
>>>> но nginx -t вернул 0 код завершения:

>>>> # nginx -t ; echo $?
>>>> [warn]: conflicting server name "example.com" on ip:80, ignored
>>>> [warn]: conflicting server name "*.example.com" on ip:80, ignored
>>>> the configuration file /etc/nginx/conf/nginx.conf syntax is ok
>>>> configuration file /etc/nginx/conf/nginx.conf test is successful
>>>> 0

>>> Это не фатальные ошибки и с ними nginx может запуститься и работать.

>> может. только вот он игнорирует тот server { ... } который будет вторым.
>> для конфигов с ошибками лучше бы nginx -t выдавал сообщение про
>> ошибку и возвращал ненулевой код возврата, чем 0 и "syntax is ok".
>> нет разве?

> Ещё раз: это не ошибка, а предупреждение.  Такие же выдаются,
> например, для deprecated директив, для debug-only директив если
> бинарник собран без дебага и т.п.  Работать с конфигом, выдающим
> предупреждения - можно, и зачастую нужно.  А код возврата отражает
> простой факт - сможет nginx с таким конфигом работать, или нет.

понятно.

у компилятора gcc есть параметр командной строки

	 -Werror
         	   Make all warnings into errors.

имеет ли смысл для nginx по аналогии сделать параметр
командной строки, при наличии которого nginx будет
возвращать ненулевой код возврата если в процессе
тестирования конфига были предупреждения ?

например,

  -t            : test configuration and exit
  -W            : treat warnings as errors

это было бы удобно для генераторов конфигов и т.п.

-- 
Best regards,
  Gena




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