Red Hat Nginx Init Script

Should work on RHEL, Fedora, CentOS. Tested on CentOS 5.

Save this file as /etc/init.d/nginx

#!/bin/sh

#

# nginx - this script starts and stops the nginx daemon

#

# chkconfig:   - 85 15 

# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \

#               proxy and IMAP/POP3 proxy server

# processname: nginx

# config:      /etc/nginx/nginx.conf

# config:      /etc/sysconfig/nginx

# pidfile:     /var/run/nginx.pid

 
# Source function library.

. /
etc/
rc.d/
init.d/
functions
 
# Source networking configuration.

. /
etc/
sysconfig/
network
 
# Check that networking is up.

[
 "$NETWORKING
"
 = "no"
 ]
 &&
 exit
 0

 
nginx
="/usr/sbin/nginx"

prog
=$(
basename
 $nginx
)

 
NGINX_CONF_FILE
="/etc/nginx/nginx.conf"

 
[
 -f
 /
etc/
sysconfig/
nginx ]
 &&
 . /
etc/
sysconfig/
nginx
 
lockfile
=/
var/
lock/
subsys/
nginx
 
make_dirs(
)
 {

   # make required directories

   user
=`
$nginx
 -V
 2
>&
1
 |
 grep
 "configure arguments:"
 |
 sed
 's/[^*]*--user=\([^ ]*\).*/\1/g'
 -`

   if
 [
 -z
 "`grep $user /etc/passwd`
"
 ]
; then

       useradd -M
 -s
 /
bin/
nologin $user

   fi

   options
=`
$nginx
 -V
 2
>&
1
 |
 grep
 'configure arguments:'
`

   for
 opt in
 $options
; do

       if
 [
 `
echo
 $opt
 |
 grep
 '.*-temp-path'
`
 ]
; then

           value
=`
echo
 $opt
 |
 cut
 -d
 "="
 -f
 2
`

           if
 [
 !
 -d
 "$value
"
 ]
; then

               # echo "creating" $value

               mkdir
 -p
 $value
 &&
 chown
 -R
 $user
 $value

           fi

       fi

   done

}

 
start(
)
 {

    [
 -x
 $nginx
 ]
 ||
 exit
 5

    [
 -f
 $NGINX_CONF_FILE
 ]
 ||
 exit
 6

    make_dirs
    echo
 -n
 $"Starting $prog
: "

    daemon $nginx
 -c
 $NGINX_CONF_FILE

    retval
=$?

    echo

    [
 $retval
 -eq
 0
 ]
 &&
 touch
 $lockfile

    return
 $retval

}

 
stop(
)
 {

    echo
 -n
 $"Stopping $prog
: "

    killproc $prog
 -QUIT

    retval
=$?

    echo

    [
 $retval
 -eq
 0
 ]
 &&
 rm
 -f
 $lockfile

    return
 $retval

}

 
restart(
)
 {

    configtest ||
 return
 $?

    stop
    sleep
 1

    start
}

 
reload(
)
 {

    configtest ||
 return
 $?

    echo
 -n
 $"Reloading $prog
: "

    killproc $nginx
 -HUP

    RETVAL
=$?

    echo

}

 
force_reload(
)
 {

    restart
}

 
configtest(
)
 {

  $nginx
 -t
 -c
 $NGINX_CONF_FILE

}

 
rh_status(
)
 {

    status $prog

}

 
rh_status_q(
)
 {

    rh_status >/
dev/
null 2
>&
1

}

 
case
 "$1"
 in

    start)

        rh_status_q &&
 exit
 0

        $1

        ;;

    stop)

        rh_status_q ||
 exit
 0

        $1

        ;;

    restart|
configtest)

        $1

        ;;

    reload)

        rh_status_q ||
 exit
 7

        $1

        ;;

    force-reload)

        force_reload
        ;;

    status)

        rh_status
        ;;

    condrestart|
try-restart)

        rh_status_q ||
 exit
 0

            ;;

    *
)

        echo
 $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"

        exit
 2

esac

猜你喜欢

转载自jackguo1123.iteye.com/blog/1350902