aboutsummaryrefslogtreecommitdiffstats
path: root/main/nginx/nginx.initd
diff options
context:
space:
mode:
Diffstat (limited to 'main/nginx/nginx.initd')
-rw-r--r--main/nginx/nginx.initd72
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"
+}