#!/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 $ extra_started_commands="upgrade reload" extra_commands="configtest" depend() { need net use dns logger netmount } start() { configtest || return 1 ebegin "Starting tengine" start-stop-daemon --start --pidfile /var/run/tengine.pid \ --exec /usr/sbin/tengine -- -c /etc/tengine/tengine.conf eend $? "Failed to start tengine" } stop() { configtest || return 1 ebegin "Stopping tengine" start-stop-daemon --stop --pidfile /var/run/tengine.pid eend $? "Failed to stop tengine" rm -f /var/run/tengine.pid } reload() { configtest || return 1 ebegin "Refreshing tengine' configuration" kill -HUP `cat /var/run/tengine.pid` &>/dev/null eend $? "Failed to reload tengine" } upgrade() { configtest || return 1 ebegin "Upgrading tengine" einfo "Sending USR2 to old binary" kill -USR2 `cat /var/run/tengine.pid` &>/dev/null einfo "Sleeping 3 seconds before pid-files checking" sleep 3 if [ ! -f /var/run/tengine.pid.oldbin ]; then eerror "File with old pid not found" return 1 fi if [ ! -f /var/run/tengine.pid ]; then eerror "New binary failed to start" return 1 fi einfo "Sleeping 3 seconds before WINCH" sleep 3 ; kill -WINCH `cat /var/run/tengine.pid.oldbin` einfo "Sending QUIT to old binary" kill -QUIT `cat /var/run/tengine.pid.oldbin` einfo "Upgrade completed" eend $? "Upgrade failed" } configtest() { ebegin "Checking tengine' configuration" mkdir -p /tmp/tengine /usr/sbin/tengine -c /etc/tengine/tengine.conf -t eend $? "failed, please correct errors above" }