Skip to content

Instantly share code, notes, and snippets.

@FernandoEscher
Forked from jordanorelli/nginx
Created June 25, 2012 21:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save FernandoEscher/2991588 to your computer and use it in GitHub Desktop.
Save FernandoEscher/2991588 to your computer and use it in GitHub Desktop.
nginx init.d script
#!/usr/bin/env bash
# Adapted from the book "Nginx HTTP Server", by Clement Nedelcu.
# Original Author: Ryuan Norbauer http://norbauerinc.com
# Modified: Geoffrey Grosenbach http://topfunky.com
# Modified: Clement Nedelcu http://cnedelcu.blogspot.com/
# Modified: Jordan Orelli http://jordanorelli.com/
# source: https://gist.github.com/1161075
# Corresponds with the following compile-time options:
# --sbin-path=/usr/local/sbin
# --pid-path=/var/run/nginx.pid
### BEGIN INIT INFO
# Provides: nginx
# Required-Start: $local_fs $remote_fs $network $syslog $named
# Required-Stop: $local_fs $remote_fs $network $syslog $named
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive: false
# Short-Description: start/stop nginx web server
### END INIT INFO
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="nginx daemon"
NAME="nginx"
PIDFILE="/var/run/$NAME.pid"
DAEMON="/usr/local/sbin/$NAME"
SCRIPTNAME="/etc/init.d/$NAME"
# If the daemon file is not found, terminate the script.
if [[ ! -x "$DAEMON" ]] ; then
echo "ERROR: Unable to find nginx daemon file expected to be found"\
"at $DAEMON." >&2
exit 2
fi
d_start() {
if [[ -f "$PIDFILE" ]] ; then
echo "ERROR: $NAME appears to be running. Check $PIDFILE" >&2
exit 4
fi
"$DAEMON"
}
d_stop() {
if [[ ! -f "$PIDFILE" ]] ; then
echo "ERROR: $NAME does not appear to be running; pid file $PIDFILE not found." >&2
exit 5
fi
$DAEMON -s quit
}
d_reload() {
if [[ -f "$PIDFILE" ]] ; then
"$DAEMON" -s reload
else
"$DAEMON"
fi
}
d_status() {
if [[ -f "$PIDFILE" ]] ; then
echo "$NAME is running."
else
echo "$NAME is not running."
fi
}
d_info() {
"$DAEMON" -V
}
case "$1" in
start)
echo "Starting $DESC: $NAME"
d_start
;;
stop)
echo "Stopping $DESC: $NAME"
d_stop
;;
reload | force-reload)
echo "Reloading $DESC configuration..."
d_reload
echo "reloaded."
;;
restart)
echo "Restarting $DESC: $NAME"
d_stop
# Sleep for two seconds to give the nginx daemon some time to perform
# a graceful stop.
sleep 2
d_start
;;
status)
d_status
;;
info)
d_info
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|reload|info}" >&2
exit 3
;;
esac
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment