You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
145 lines
2.7 KiB
145 lines
2.7 KiB
7 years ago
|
#!/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)
|
||
|
|
||
|
sysconfig="/etc/sysconfig/$prog"
|
||
|
lockfile="/var/lock/subsys/nginx"
|
||
|
pidfile="/var/run/${prog}.pid"
|
||
|
|
||
|
NGINX_CONF_FILE="/etc/nginx/nginx.conf"
|
||
|
|
||
|
[ -f $sysconfig ] && . $sysconfig
|
||
|
|
||
|
|
||
|
start() {
|
||
|
[ -x $nginx ] || exit 5
|
||
|
[ -f $NGINX_CONF_FILE ] || exit 6
|
||
|
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 -p $pidfile $prog
|
||
|
retval=$?
|
||
|
echo
|
||
|
[ $retval -eq 0 ] && rm -f $lockfile
|
||
|
return $retval
|
||
|
}
|
||
|
|
||
|
restart() {
|
||
|
configtest_q || return 6
|
||
|
stop
|
||
|
start
|
||
|
}
|
||
|
|
||
|
reload() {
|
||
|
configtest_q || return 6
|
||
|
echo -n $"Reloading $prog: "
|
||
|
killproc -p $pidfile $prog -HUP
|
||
|
echo
|
||
|
}
|
||
|
|
||
|
configtest() {
|
||
|
$nginx -t -c $NGINX_CONF_FILE
|
||
|
}
|
||
|
|
||
|
configtest_q() {
|
||
|
$nginx -t -q -c $NGINX_CONF_FILE
|
||
|
}
|
||
|
|
||
|
rh_status() {
|
||
|
status $prog
|
||
|
}
|
||
|
|
||
|
rh_status_q() {
|
||
|
rh_status >/dev/null 2>&1
|
||
|
}
|
||
|
|
||
|
# Upgrade the binary with no downtime.
|
||
|
upgrade() {
|
||
|
local oldbin_pidfile="${pidfile}.oldbin"
|
||
|
|
||
|
configtest_q || return 6
|
||
|
echo -n $"Upgrading $prog: "
|
||
|
killproc -p $pidfile $prog -USR2
|
||
|
retval=$?
|
||
|
sleep 1
|
||
|
if [[ -f ${oldbin_pidfile} && -f ${pidfile} ]]; then
|
||
|
killproc -p $oldbin_pidfile $prog -QUIT
|
||
|
success $"$prog online upgrade"
|
||
|
echo
|
||
|
return 0
|
||
|
else
|
||
|
failure $"$prog online upgrade"
|
||
|
echo
|
||
|
return 1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
# Tell nginx to reopen logs
|
||
|
reopen_logs() {
|
||
|
configtest_q || return 6
|
||
|
echo -n $"Reopening $prog logs: "
|
||
|
killproc -p $pidfile $prog -USR1
|
||
|
retval=$?
|
||
|
echo
|
||
|
return $retval
|
||
|
}
|
||
|
|
||
|
case "$1" in
|
||
|
start)
|
||
|
rh_status_q && exit 0
|
||
|
$1
|
||
|
;;
|
||
|
stop)
|
||
|
rh_status_q || exit 0
|
||
|
$1
|
||
|
;;
|
||
|
restart|configtest|reopen_logs)
|
||
|
$1
|
||
|
;;
|
||
|
force-reload|upgrade)
|
||
|
rh_status_q || exit 7
|
||
|
upgrade
|
||
|
;;
|
||
|
reload)
|
||
|
rh_status_q || exit 7
|
||
|
$1
|
||
|
;;
|
||
|
status|status_q)
|
||
|
rh_$1
|
||
|
;;
|
||
|
condrestart|try-restart)
|
||
|
rh_status_q || exit 7
|
||
|
restart
|
||
|
;;
|
||
|
*)
|
||
|
echo $"Usage: $0 {start|stop|reload|configtest|status|force-reload|upgrade|restart|reopen_logs}"
|
||
|
exit 2
|
||
|
esac
|