nginx 1.18.0 does not reload on ubuntu 18.04

Zach Mitchell zlmitche at
Fri May 22 15:48:35 UTC 2020

I’ve also tried that “ExecReload=/bin/kill -s HUP $MAINPID” which doesn’t work either.

I’m testing by adding a new location rule and then reloading and it never gets picked up, I have to restart the nginx process and then it finally gets the new config.


From: nginx <nginx-bounces at> On Behalf Of Moshe Katz
Sent: Friday, May 22, 2020 11:31 AM
To: nginx at
Subject: Re: nginx 1.18.0 does not reload on ubuntu 18.04

I installed nginx on Ubuntu 18.04 from the nginx official repository, and the provided systemd service file is much simpler than yours. It looks like this:

Description=nginx - high performance web server

ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID


You should see if something more like that works for you.

On Fri, May 22, 2020 at 10:59 AM Zach Mitchell <zlmitche at<mailto:zlmitche at>> wrote:
I'm using a nginx 1.18.0 and 1.16.1 and when i perform a systemctl restart nginx, it does not actually reload the configs. nginx -s reload does not work either. Am i missing a configure flag that allows this to work properly?

Here is my nginx -V

built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)
built with OpenSSL 1.1.1g  21 Apr 2020
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --with-threads --with-file-aio --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_stub_status_module --with-http_realip_module --with-compat --with-pcre=../pcre-8.44 --with-pcre-jit --with-zlib=../zlib-1.2.11 --with-openssl=../openssl-1.1.1g --with-openssl-opt=no-nextprotoneg --add-module=../ngx_cache_purge-2.3

Here is my systemd nginx.service

Description=The NGINX HTTP and reverse proxy server

ExecStartPre=/usr/local/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/local/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/usr/local/sbin/nginx -g 'daemon on; master_process on;' -s reload
ExecStop=/bin/kill -s QUIT $MAINPID


I've got a workaround, which i spawn a 2nd process and wait then kill the old, but what is the deal?

ExecReload=/bin/bash -c "/bin/kill -USR2 $MAINPID && /bin/sleep 5 && /bin/kill -WINCH $MAINPID && /bin/sleep 5 && /bin/kill -QUIT $MAINPID"

I appreciate the help! Thanks.

nginx mailing list
nginx at<mailto:nginx at>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the nginx mailing list