#!/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/varnish/files/varnishd.initd-r1,v 1.1 2013/07/08 22:11:35 blueness Exp $ extra_commands="configtest" extra_started_commands="reload" description_configtest="Run syntax tests for configuration files." description_reload="Reloads the configuration." depend() { need net } configtest() { ebegin "Checking ${SVCNAME} configuration" checkconfig eend $? } checkconfig() { ${VARNISHD} -C -f ${CONFIGFILE} >/dev/null 2>&1 ret=$? if [ $ret -ne 0 ]; then eerror "${SVCNAME} has detected an error in your setup:" ${VARNISHD} -C -f ${CONFIGFILE} fi return $ret } start() { checkconfig || return 1 ebegin "Starting varnish" start-stop-daemon --quiet --start --pidfile /var/run/varnishd.pid --exec ${VARNISHD} -- -P /var/run/varnishd.pid ${VARNISHD_OPTS} &> /dev/null eend $? if [ "${VARNISHNCSA_ARGS}" != "" ]; then ebegin "Starting varnish logging" start-stop-daemon --quiet --start --pidfile /var/run/varnishncsa.pid --exec /usr/bin/varnishncsa -- -D -P /var/run/varnishncsa.pid ${VARNISHNCSA_ARGS} eend $? fi } stop() { ebegin "Stopping varnish" start-stop-daemon --quiet --stop --pidfile /var/run/varnishd.pid eend $? if [ -e /var/run/varnishncsa.pid ]; then ebegin "Stopping varnish logging" start-stop-daemon --quiet --stop --pidfile /var/run/varnishncsa.pid eend $? fi } reload() { checkconfig || return 1 ebegin "Reloading varnish" $VARNISHADM vcl.list >/dev/null 2>&1 ret=$? if [ $ret -ne 0 ]; then eerror "${SVCNAME} cannot list configuration" return 1 fi new_config="reload_$(date +%FT%H:%M:%S)" $VARNISHADM vcl.load $new_config $CONFIGFILE >/dev/null 2>&1 ret=$? if [ $ret -ne 0 ]; then eerror "${SVCNAME} cannot load configuration" return 1 fi $VARNISHADM vcl.use $new_config >/dev/null 2>&1 ret=$? if [ $ret -ne 0 ]; then eerror "${SVCNAME} cannot switch configuration" return 1 fi eend 0 }