Nginx Startup Script

1 view
Skip to first unread message

jwesonga

unread,
Aug 8, 2007, 7:27:24 AM8/8/07
to Deploying Rails
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?

Isak Hansen

unread,
Aug 8, 2007, 8:25:58 AM8/8/07
to rubyonrails...@googlegroups.com

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


>
> >
>

D. Krmpotic

unread,
Aug 15, 2007, 2:37:38 PM8/15/07
to rubyonrails...@googlegroups.com
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).

--
Posted via http://www.ruby-forum.com/.

D. Krmpotic

unread,
Aug 15, 2007, 3:13:01 PM8/15/07
to rubyonrails...@googlegroups.com
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 Norbauer <ryan.n...@gmail.com>
# Modified: Geoffrey Grosenbach http://topfunky.com
# Modified: David Krmpotic 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

Reply all
Reply to author
Forward
0 new messages