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