Last active
August 5, 2018 22:37
-
-
Save srpouyet/3006274 to your computer and use it in GitHub Desktop.
Nginx Upstart script (Ubuntu 12.04)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
### Nginx upstart script | |
### source: http://serverfault.com/a/391737/70451 | |
### /etc/init/nginx.conf | |
description "nginx http daemon" | |
start on (filesystem and net-device-up IFACE=lo) | |
stop on runlevel [!2345] | |
env DAEMON=/usr/local/sbin/nginx | |
env PIDFILE=/var/run/nginx.pid | |
# Needed to allow Nginx to start, however, the wrong PID will be tracked | |
expect fork | |
# Test the nginx configuration (Upstart will not proceed if this fails) | |
pre-start exec $DAEMON -t | |
# Ensure nginx is shutdown gracefully | |
# Upstart will be tracking the wrong PID so the following is needed to stop nginx | |
post-stop exec $DAEMON -s stop | |
# Start Nginx | |
exec $DAEMON |
As stated in init file, the incorrect PID will be found. This causes problems if you have lots of forks (like if you use Passenger) Try this one instead: https://gist.github.com/2492523
I updated the script; the previous version didn't stop nginx correctly anymore.
The post-stop trigger now runs $ nginx -s stop
to stop the current nginx instance.
i love you :)
Seeing the same problem on Ubuntu 12.04.1 w/ nginx 1.2.3....post-stop addition at least gets it working.
Working for me without the post-stop line. CentOS 6.x
"pre-stop exec $DAEMON -s stop" is ok
This helped me troubleshoot the screwy nginx stops on my server. Ubuntu 12.04.4.
The line that worked for me was:
post-stop exec $DAEMON -s quit
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Working for me without the post-stop line. Ubuntu 12.04.1 and nginx 2.1.4