aboutsummaryrefslogtreecommitdiffstats
path: root/main/nginx-lua/nginx.initd
diff options
context:
space:
mode:
Diffstat (limited to 'main/nginx-lua/nginx.initd')
-rwxr-xr-xmain/nginx-lua/nginx.initd75
1 files changed, 51 insertions, 24 deletions
diff --git a/main/nginx-lua/nginx.initd b/main/nginx-lua/nginx.initd
index bec20dddaa..b1e0fe7856 100755
--- a/main/nginx-lua/nginx.initd
+++ b/main/nginx-lua/nginx.initd
@@ -1,42 +1,69 @@
#!/sbin/openrc-run
+# 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 $
-extra_started_commands="reload"
+extra_started_commands="upgrade reload"
extra_commands="configtest"
+conffile=/etc/nginx/nginx.conf
+
+pidfile=/var/run/nginx/nginx.pid
+command=/usr/sbin/nginx
+command_args="-c $conffile"
+
+
depend() {
need net
use dns logger netmount
}
-CONFFILE=${CONFFILE:-/etc/nginx/${SVCNAME}.conf}
-PIDFILE=${PIDFILE:-/var/run/${SVCNAME}.pid}
-
-configtest() {
- ebegin "Checking ${SVCNAME} configuration"
- mkdir -p /tmp/nginx
- /usr/sbin/nginx -c ${CONFFILE} -t
- eend $? "failed, please correct errors above"
+start_pre() {
+ configtest || return 1
}
-start() {
+reload() {
configtest || return 1
- ebegin "Starting ${SVCNAME}"
- start-stop-daemon --start --pidfile "${PIDFILE}" \
- --exec /usr/sbin/nginx -- -c ${CONFFILE} -g "pid ${PIDFILE};"
- eend $? "Failed to start ${SVCNAME}"
+ ebegin "Refreshing nginx' configuration"
+ kill -HUP `cat $pidfile` &>/dev/null
+ eend $? "Failed to reload nginx"
}
-stop() {
+upgrade() {
configtest || return 1
- ebegin "Stopping ${SVCNAME}"
- start-stop-daemon --stop --pidfile "${PIDFILE}"
- eend $? "Failed to stop ${SVCNAME}"
- rm -f "${PIDFILE}"
+ ebegin "Upgrading nginx"
+
+ einfo "Sending USR2 to old binary"
+ kill -USR2 `cat $pidfile` &>/dev/null
+
+ einfo "Sleeping 3 seconds before pid-files checking"
+ sleep 3
+
+ if [ ! -f $pidfile.oldbin ]; then
+ eerror "File with old pid ($pidfile.oldbin) not found"
+ return 1
+ fi
+
+ if [ ! -f $pidfile ]; then
+ eerror "New binary failed to start"
+ return 1
+ fi
+
+ einfo "Sleeping 3 seconds before WINCH"
+ sleep 3 ; kill -WINCH `cat $pidfile.oldbin`
+
+ einfo "Sending QUIT to old binary"
+ kill -QUIT `cat $pidfile.oldbin`
+
+ einfo "Upgrade completed"
+
+ eend $? "Upgrade failed"
}
-reload() {
- configtest || return 1
- ebegin "Refreshing ${SVCNAME} configuration"
- kill -HUP $(cat "${PIDFILE}") &>/dev/null
- eend $? "Failed to reload nginx"
+configtest() {
+ ebegin "Checking nginx' configuration"
+ checkpath --directory --owner nginx:nginx ${pidfile%/*}
+ $command -c $conffile -tq
+ eend $? "failed, please correct errors above"
}
+