"nginx -s" doesn't read error_log configuration
|Reported by:||https://stackoverflow.com/users/4861570/stefan||Owned by:|
'uname' is not recognized as an internal or external command,
operable program or batch file.
nginx version: nginx/1.15.1
built by cl 16.00.40219.01 for 80x86
built with OpenSSL 1.0.2o 27 Mar 2018
TLS SNI support enabled
configure arguments: --with-cc=cl --builddir=objs.msvc8 --with-debug --prefix= --conf-path=conf/nginx.conf --pid-path=logs/nginx.pid --http-log-path=logs/access.log --error-log-path=logs/error.log --sbin-path=nginx.exe --http-client-body-temp-path=temp/client_body_temp --http-proxy-temp-path=temp/proxy_temp --http-fastcgi-temp-path=temp/fastcgi_temp --http-scgi-temp-path=temp/scgi_temp --http-uwsgi-temp-path=temp/uwsgi_temp --with-cc-opt=-DFD_SETSIZE=1024 --with-pcre=objs.msvc8/lib/pcre-8.42 --with-zlib=objs.msvc8/lib/zlib-1.2.11 --with-select_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_stub_status_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_slice_module --with-mail --with-stream --with-openssl=objs.msvc8/lib/openssl-1.0.2o --with-openssl-opt=no-asm --with-http_ssl_module --with-mail_ssl_module --with-stream_ssl_module
I'm using recent nginx 1.15.1 on Microsoft Windows 7 (6.1.7601 SP1) and trying to set it up as a small webserver on a readonly (network-)drive. (I previously used miniweb from stanleyhuang before, but that isn't maintained anymore and has severe security flaws.)
It was a small challenge to work around of many write operations of nginx, but I finally got it running - with one small exception: If I want to shut down nginx with "nginx.exe -s quit" this exe *always* wants to write something like "2018/07/06 09:51:42 [notice] 558324#550736: signal process started" to logs/error.log, despite in config I clearly wrote "error_log nul emerg;" so:
- write error log to nul (windows equivalent to /dev/null")
- only write logs with emergency level (written log has notice level)
This write action pops up an error message like https://i.stack.imgur.com/68lFU.png which would confuse the user.
So my best guess is that the call doesn't read in / consider my configuration, which I would call a bug.
Steps to reproduce:
- Download nginx 1.15.1 for Windows on a Windows (7) machine
- Extract and copy files to a write-protected network drive or use e.g. VeraCrypt that can mount a container readonly
- use attached config to configure nginx
- start nginx - should work like a charm
- shutdown nginx with "nginx.exe -s quit"
- nginx shuts down gracefully
Currently buggy behavior:
- Windows popup of Write Protect Error pops up because ngnix wants to write a notice to logs/error.log (which isn't configured as error log file)