#!/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="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 } start_pre() { configtest || return 1 } 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 ($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" } configtest() { ebegin "Checking nginx' configuration" checkpath --directory --owner nginx:nginx ${pidfile%/*} $command -c $conffile -tq eend $? "failed, please correct errors above" }