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