Created
February 2, 2014 03:15
-
-
Save airencracken/8762569 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/sbin/runscript | |
# Copyright 1999-2013 Gentoo Foundation | |
# Distributed under the terms of the GNU General Public License v2 | |
# $Header: /var/cvsroot/gentoo-x86/www-servers/nginx/files/nginx.initd-r2,v 1.1 2013/05/13 12:18:11 dev-ze | |
ro Exp $ | |
extra_commands="configtest" | |
extra_started_commands="upgrade reload" | |
description="Robust, small and high performance http and reverse proxy server" | |
description_configtest="Run nginx' internal config check." | |
description_upgrade="Upgrade the nginx binary without losing connections." | |
description_reload="Reload the nginx configuration without losing connections." | |
nginx_config=${nginx_config:-/etc/nginx/nginx.conf} | |
command="/usr/sbin/nginx" | |
command_args="-c ${nginx_config}" | |
pidfile=${pidfile:-/run/nginx.pid} | |
user=${user:-nginx} | |
group=${group:-nginx} | |
depend() { | |
need net | |
use dns logger netmount | |
} | |
start_pre() { | |
if [ "${RC_CMD}" != "restart" ]; then | |
configtest || return 1 | |
fi | |
} | |
stop_pre() { | |
if [ "${RC_CMD}" = "restart" ]; then | |
configtest || return 1 | |
fi | |
} | |
stop_post() { | |
rm -f ${pidfile} | |
} | |
reload() { | |
configtest || return 1 | |
ebegin "Refreshing nginx' configuration" | |
kill -HUP `cat ${pidfile}` &>/dev/null | |
eend $? "Failed to reload nginx" | |
} | |
upgrade() { | |
configtest || return 1 | |
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 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" | |
} | |
configtest() { | |
ebegin "Checking nginx' configuration" | |
${command} -c ${nginx_config} -t -q | |
if [ $? -ne 0 ]; then | |
${command} -c ${nginx_config} -t | |
fi | |
eend $? "failed, please correct errors above" | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment