#! /bin/sh # # varnish Control the varnish HTTP accelerator # # chkconfig: 235 90 10 # description: Varnish is a high-perfomance HTTP accelerator # processname: varnishd # config: /etc/sysconfig/varnish # pidfile: /var/run/varnish/varnishd.pid ### BEGIN INIT INFO # Provides: varnish # Required-Start: $network $local_fs $remote_fs # Required-Stop: $network $local_fs $remote_fs # Should-Start: $syslog # Short-Description: start and stop varnishd # Description: Varnish is a high-perfomance HTTP accelerator ### END INIT INFO # Source function library. . /etc/rc.d/init.d/functions pidfile="/var/run/varnish/varnish.pid" config="/etc/sysconfig/varnish" lockfile="/var/lock/subsys/varnish" prog="varnishd" progfile="/usr/sbin/$prog" # Include varnish defaults [ -e /etc/sysconfig/varnish ] && . /etc/sysconfig/varnish RETVAL=0 start() { if [ ! -x $progfile ]; then echo $progfile not found exit 5 fi if [ ! -f $config ]; then echo $config not found exit 6 fi echo -n "Starting varnish HTTP accelerator: " # Open files (usually 1024, which is way too small for varnish) ulimit -n ${NFILES:-131072} # Varnish wants to lock shared memory log in memory. ulimit -l ${MEMLOCK:-82000} # $DAEMON_OPTS is set in /etc/sysconfig/varnish. At least, one # has to set up a backend, or /tmp will be used, which is a bad idea. if [ "$DAEMON_OPTS" = "" ]; then echo "\$DAEMON_OPTS empty." echo -n "Please put configuration options in $config" return 6 else # Varnish always gives output on STDOUT daemon --pidfile $pidfile $progfile -P $pidfile "$DAEMON_OPTS" > /dev/null 2>&1 RETVAL=$? if [ $RETVAL -eq 0 ]; then touch $lockfile echo_success echo else echo_failure fi return $RETVAL fi } stop() { echo -n "Stopping varnish HTTP accelerator: " killproc -p $pidfile $prog RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f $lockfile return $RETVAL } restart() { stop start } reload() { restart } force_reload() { restart } rh_status() { status -p $pidfile $prog } rh_status_q() { rh_status >/dev/null 2>&1 } # See how we were called. case "$1" in start) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart) $1 ;; reload) rh_status_q || exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 restart ;; *) echo "Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" exit 2 esac exit $?