#!/sbin/runscript # Copyright 1999-2004 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/www-servers/nginx/files/nginx-r1,v 1.1 2006/07/04 16:58:38 voxus Exp $ opts="${opts} upgrade reload configtest" depend() { need net use dns logger } start() { configtest || return 1 ebegin "Starting nginx" start-stop-daemon --start --pidfile /var/run/nginx.pid \ --exec /usr/sbin/nginx -- -c /etc/nginx/nginx.conf eend $? "Failed to start nginx" } stop() { configtest || return 1 ebegin "Stopping nginx" start-stop-daemon --stop --pidfile /var/run/nginx.pid eend $? "Failed to stop nginx" rm -f /var/run/nginx.pid } reload() { configtest || return 1 ebegin "Refreshing nginx' configuration" kill -HUP `cat /var/run/nginx.pid` &>/dev/null eend $? "Failed to reload nginx" } upgrade() { configtest || return 1 ebegin "Upgrading nginx" einfo "Sending USR2 to old binary" kill -USR2 `cat /var/run/nginx.pid` &>/dev/null einfo "Sleeping 3 seconds before pid-files checking" sleep 3 if [ ! -f /var/run/nginx.pid.oldbin ]; then eerror "File with old pid not found" return 1 fi if [ ! -f /var/run/nginx.pid ]; then eerror "New binary failed to start" return 1 fi einfo "Sleeping 3 seconds before WINCH" sleep 3 ; kill -WINCH `cat /var/run/nginx.pid.oldbin` einfo "Sending QUIT to old binary" kill -QUIT `cat /var/run/nginx.pid.oldbin` einfo "Upgrade completed" eend $? "Upgrade failed" } configtest() { ebegin "Checking nginx' configuration" /usr/sbin/nginx -c /etc/nginx/nginx.conf -t eend $? "failed, please correct errors above" }