| #!/bin/sh | |
| # | |
| # Template SUSE system startup script for example service/daemon FOO | |
| # Copyright (C) 1995--2005 Kurt Garloff, SUSE / Novell Inc. | |
| # | |
| # This library is free software; you can redistribute it and/or modify it | |
| # under the terms of the GNU Lesser General Public License as published by | |
| # the Free Software Foundation; either version 2.1 of the License, or (at | |
| # your option) any later version. | |
| # | |
| # This library is distributed in the hope that it will be useful, but | |
| # WITHOUT ANY WARRANTY; without even the implied warranty of | |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| # Lesser General Public License for more details. | |
| # | |
| # You should have received a copy of the GNU Lesser General Public | |
| # License along with this library; if not, write to the Free Software | |
| # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |
| # | |
| ### BEGIN INIT INFO | |
| # Provides: nginx | |
| # Required-Start: $local_fs $remote_fs $network | |
| # Required-Stop: $local_fs $remote_fs $network | |
| # Default-Start: 2 3 4 5 | |
| # Default-Stop: 0 1 6 | |
| # Short-Description: start and stop nginx | |
| ### END INIT INFO | |
| # Check for existence of needed config file and read it | |
| NGINX_CONFIG=/etc/sysconfig/nginx | |
| test -r $NGINX_CONFIG || { echo "$NGINX_CONFIG not existing"; | |
| if [ "$1" = "stop" ]; then exit 0; | |
| else exit 6; fi; } | |
| # Read config | |
| . $NGINX_CONFIG | |
| test -x $nginx || { echo "$nginx not installed"; | |
| if [ "$1" = "stop" ]; then exit 0; | |
| else exit 5; fi; } | |
| nginx=${NGINX:-/usr/sbin/nginx} | |
| conffile=${CONFFILE:-/etc/nginx/nginx.conf} | |
| pidfile=${PIDFILE:-/var/run/nginx.pid} | |
| SLEEPSEC=${SLEEPSEC:-1} | |
| . /etc/rc.status | |
| rc_reset | |
| upgrade() { | |
| oldbinpidfile=${pidfile}.oldbin | |
| configtest -q || return 6 | |
| echo -n $"Starting new master: " | |
| /sbin/killproc -p ${pidfile} -USR2 $nginx | |
| /bin/sleep $SLEEPSEC | |
| if [ -f ${oldbinpidfile} -a -f ${pidfile} ]; then | |
| echo -n $"Graceful shutdown of old nginx: " | |
| killproc -p ${oldbinpidfile} -QUIT $nginx | |
| else | |
| echo $"Upgrade failed!" | |
| return 1 | |
| fi | |
| } | |
| configtest() { | |
| if [ "$#" -ne 0 ] ; then | |
| case "$1" in | |
| -q) | |
| FLAG=$1 | |
| ;; | |
| *) | |
| ;; | |
| esac | |
| shift | |
| fi | |
| ${nginx} -t -c ${conffile} $FLAG | |
| } | |
| case "$1" in | |
| start) | |
| echo -n "Starting nginx " | |
| $0 status | |
| if test $? -ne 0; then | |
| /sbin/startproc $nginx -c $conffile | |
| else | |
| rc_reset | |
| fi | |
| rc_status -v | |
| ;; | |
| stop) | |
| echo -n "Shutting down nginx " | |
| /sbin/killproc -p $pidfile $nginx | |
| rc_status -v | |
| ;; | |
| try-restart|condrestart) | |
| $0 status | |
| if test $? -eq 0; then | |
| $0 restart | |
| else | |
| rc_reset | |
| fi | |
| rc_status | |
| ;; | |
| restart) | |
| configtest -q || exit 6 | |
| $0 stop | |
| $0 start | |
| rc_status | |
| ;; | |
| reload|force-reload) | |
| echo -n "Reload service nginx " | |
| /sbin/killproc -p $pidfile -HUP $nginx | |
| rc_status -v | |
| ;; | |
| status) | |
| echo -n "Checking for service nginx " | |
| /sbin/checkproc $nginx | |
| rc_status -v | |
| ;; | |
| upgrade) | |
| upgrade | |
| rc_status -v | |
| ;; | |
| configtest) | |
| configtest | |
| rc_status -v | |
| ;; | |
| *) | |
| echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|upgrade|configtest}" | |
| exit 1 | |
| ;; | |
| esac | |
| rc_exit |