Nginx Startup Script

Hi,

I’ve found a very good Nginx startup script here
http://topfunky.net/svn/shovel/nginx/init.d/nginx but I’m having a
problem setting it up.

this command does not see to be working on CentOS:
update-rc.d nginx defaults

Could anyone assist?

On 8/8/07, jwesonga [email protected] wrote:

Could anyone assist?

Red hat based distros use the chkconfig tool to configure services.

See the man page for more info. Note the part about adding “chkconfig”
and “description” comments to your script.

Isak

I think this script has a problem…

you won’t be able to stop the server, because the PID file is not
there… it starts the server without passing it a custom location for
PID… and the PID file really is in /usr/local/nginx/logs (by default).

jwesonga wrote:

Hi,

I’ve found a very good Nginx startup script here
http://topfunky.net/svn/shovel/nginx/init.d/nginx but I’m having a
problem setting it up.

this command does not see to be working on CentOS:
update-rc.d nginx defaults

Could anyone assist?

there is also some minor inconsistencies, for example:
usage prints: force-reload (should be only “reload”).

I made some small edits, so you don’t have to:

#! /bin/sh

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.

Author: Ryan N. [email protected]

Modified: Geoffrey Grosenbach http://topfunky.com

Modified: David K. http://davidhq.com

set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC=“nginx daemon”
NAME=nginx
DAEMON=/usr/local/nginx/sbin/$NAME
CONFIGFILE=/usr/local/nginx/conf/nginx.conf
PIDFILE=/usr/local/nginx/logs/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

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