nginx init script for redhat (rhel5)
    mike 
    mike503 at gmail.com
       
    Tue Mar 17 05:51:27 MSK 2009
    
    
  
for the most part, it works fine.
however, sometimes the pid file disappears (?)
also, "restart" does not work if the daemon is not running already. it
should handle that gracefully.
anyone have a better one? i also have the same issue with "restart" on
my ubuntu version as well...
#!/bin/sh
#
# Init file for nginx
#
# chkconfig: 2345 55 25
# description: Nginx web server
#
# processname: nginx
# config: /usr/local/nginx/nginx.conf
# pidfile: /usr/local/nginx/nginx.pid
# Description: Startup script for nginx webserver on Debian. Place in
/etc/init.d and
# run 'sudo update-rc.d nginx defaults', or use the appropriate command on your
# distro. For CentOS/Redhat run: '/sbin/chkconfig --add nginx'
#
# Author:  Ryan Norbauer <ryan.norbauer at gmail.com>
# Modified:     Geoffrey Grosenbach http://topfunky.com
# Modified:     David Krmpotic http://davidhq.com
# Modified:                     Vishnu Gopal http://vish.in
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="nginx daemon"
NAME=nginx
DAEMON=/usr/sbin/nginx
CONFIGFILE=/etc/nginx/nginx.conf
PIDFILE=/var/run/nginx.pid
SCRIPTNAME=/etc/init.d/nginx
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
d_start() {
  $DAEMON -c $CONFIGFILE || echo -en "\n already running"
}
d_stop() {
  kill -QUIT `cat $PIDFILE` || echo -en "\n not running"
}
d_reload() {
  kill -HUP `cat $PIDFILE` || echo -en "\n can't reload"
}
case "$1" in
  start)
    echo -n "Starting $DESC: $NAME"
    d_start
        echo "."
  ;;
  stop)
    echo -n "Stopping $DESC: $NAME"
    d_stop
        echo "."
  ;;
  reload)
    echo -n "Reloading $DESC configuration..."
    d_reload
        echo "."
  ;;
  restart)
    echo -n "Restarting $DESC: $NAME"
    d_stop
    # One second might not be time enough for a daemon to stop,
    # if this happens, d_start will fail (and dpkg will break if
    # the package is being upgraded). Change the timeout if needed
    # be, or change d_stop to have start-stop-daemon use --retry.
    # Notice that using --retry slows down the shutdown process somewhat.
    sleep 1
    d_start
    echo "."
  ;;
  *)
    echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2
    exit 3
  ;;
esac
exit 0
    
    
More information about the nginx
mailing list