nginx启动脚本

来源:互联网 发布:江苏开放大学网络教育 编辑:程序博客网 时间:2024/06/08 19:37
#!/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: /usr/local/nginx/conf/nginx.conf


# pidfile: /usr/local/nginx/logs/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/local/nginx/sbin/nginx"


prog=$(basename $nginx)


NGINX_CONF_FILE="/usr/local/nginx/conf/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