nginx systemd reload service command skips configtest

Per Hansson nginx-forum at nginx.us
Sat Sep 26 21:03:15 UTC 2015


Hi, the "nginx.service" file shipped with systemd rpm's both in nginx's
stable repository and epel for CentOS7 / RHEL7 do not perform a "configtest"
when "systemctl reload nginx" is issued.
So if there is an error in the configuration file nginx is killed but not
started due to the faulty configuration.
It's possible to mitigate this in the nginx.service file by having two
"ExecReload" commands on separate lines like so:
# grep ExecReload /usr/lib/systemd/system/nginx.service
ExecReload=/usr/sbin/nginx -t
ExecReload=/bin/kill -s HUP $MAINPID

This way if the configtest in the first line fails nginx is never killed,
the command does not print any output but that is a systemd issue so I think
unavoidable.

I can't guarantee that this is a supported way to do this but it works for
me at least :)

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,261864,261864#msg-261864



More information about the nginx mailing list