diff options
Diffstat (limited to 'main/nginx/nginx.initd')
-rw-r--r-- | main/nginx/nginx.initd | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/main/nginx/nginx.initd b/main/nginx/nginx.initd new file mode 100644 index 0000000000..e175bb413b --- /dev/null +++ b/main/nginx/nginx.initd @@ -0,0 +1,72 @@ +#!/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.init-r2,v 1.1 2010/01/03 19:51:41 djc Exp $ + +opts="${opts} upgrade reload configtest" + +depend() { + need net + use dns logger netmount +} + +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" + mkdir -p /tmp/nginx + /usr/sbin/nginx -c /etc/nginx/nginx.conf -t + eend $? "failed, please correct errors above" +} |