Welcome! Log In Create A New Profile

Advanced

Re: nginx init script for redhat (rhel5)

Jim Ohlstein
March 16, 2009 11:36PM
I use this one that relies on the start stop daemon --
http://developer.axis.com/download/distribution/apps-sys-utils-start-stop-daemon-IR1_9_18-2.tar.gz.

After its unpacked:

$ cd apps/sys-utils/start-stop-daemon-IR1_9_18-2/
$gcc start-stop-daemon.c -o start-stop-daemon

Then copy it to /usr/local/sbin or wherever suits your fancy.

I have no issues with the pid file but it also ignores a restart request
if not running.




#! /bin/sh

### BEGIN INIT INFO
# Provides: nginx
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the nginx web server
# Description: starts nginx using start-stop-daemon
### END INIT INFO


PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/sbin/nginx
NAME=nginx
DESC=nginx

test -x $DAEMON || exit 0

# Include nginx defaults if available
if [ -f /etc/default/nginx ] ; then
. /etc/default/nginx
fi

set -e

case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon --start --quiet --pidfile
/usr/local/nginx/logs/$NAME.pid \
--exec $DAEMON -- $DAEMON_OPTS
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon --stop --quiet --pidfile
/usr/local/nginx/logs/$NAME.pid \
--exec $DAEMON
echo "$NAME."
;;
restart|force-reload)
echo -n "Restarting $DESC: "
start-stop-daemon --stop --quiet --pidfile \
/usr/local/nginx/logs/$NAME.pid --exec $DAEMON
sleep 1
start-stop-daemon --start --quiet --pidfile \
/usr/local/nginx/logs/$NAME.pid --exec $DAEMON --
$DAEMON_OPTS
echo "$NAME."
;;
reload)
echo -n "Reloading $DESC configuration: "
start-stop-daemon --stop --signal HUP --quiet --pidfile
/usr/local/nginx/logs/$NAME.pid \
--exec $DAEMON
echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac

exit 0

mike wrote:
> 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@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
>
>
Subject Author Posted

nginx init script for redhat (rhel5)

mike March 16, 2009 11:27PM

Re: nginx init script for redhat (rhel5)

Chris Zimmerman March 16, 2009 11:35PM

Re: nginx init script for redhat (rhel5)

mike March 16, 2009 11:37PM

Re: nginx init script for redhat (rhel5)

Chris Zimmerman March 16, 2009 11:45PM

Re: nginx init script for redhat (rhel5)

Jim Ohlstein March 16, 2009 11:36PM

Re: nginx init script for redhat (rhel5)

mike March 16, 2009 11:42PM

Re: nginx init script for redhat (rhel5)

Cliff Wells March 16, 2009 11:56PM

Re: nginx init script for redhat (rhel5)

Cliff Wells March 17, 2009 12:02AM

Re: nginx init script for redhat (rhel5)

mike March 17, 2009 12:08AM

Re: nginx init script for redhat (rhel5)

mike March 17, 2009 12:09AM

Re: nginx init script for redhat (rhel5)

Cliff Wells March 17, 2009 12:40AM

Re: nginx init script for redhat (rhel5)

mike March 17, 2009 12:43AM

Re: nginx init script for redhat (rhel5)

Jean-Philippe Moal March 17, 2009 06:07AM

Re: nginx init script for redhat (rhel5)

mike March 17, 2009 01:45PM

Re: nginx init script for redhat (rhel5)

mike March 17, 2009 12:45AM

Re: nginx init script for redhat (rhel5)

mike March 17, 2009 03:26AM

RE: nginx init script for redhat (rhel5)

Jeroen Steggink - CMS March 17, 2009 03:57AM

Re: nginx init script for redhat (rhel5)

mike March 17, 2009 04:16AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 284
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready