#!/bin/bash
#
# cachefilesd    Start up and shut down the cachefilesd daemon
#
# chkconfig: - 13 87
# description: Starts user-level daemon that manages the caching files \
#	       used by Network Filsystems

# Source function library.
. /etc/init.d/functions

# Source networking configuration.
[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network

OPTIONS=""
RETVAL=0
LOCKFILE=/var/lock/subsys/cachefilesd
PIDFILE=/var/run/cachefilesd.pid
MODPROBE=/sbin/modprobe
MODPROBE_ARGS=""
PROG="cachefilesd"

# Check for and source configuration file otherwise set defaults
[ -f /etc/sysconfig/$PROG ] && . /etc/sysconfig/$PROG

case "$1" in 
  start|condstart)
	# Check that networking is up.
	[ "${NETWORKING}" = "no" ] && exit 6

	[ ! -x /sbin/$PROG ] && exit 5

	# Make sure the daemon is not already running.
	if status $PROG > /dev/null ; then
		exit 0
	fi
	rm -f $LOCKFILE

	echo -n $"Starting $PROG: "

	# Load the cachefiles module if needed
	[ -x "$MODPROBE" ] && {
		if ! /sbin/lsmod | grep cachefiles > /dev/null ; then
			 $MODPROBE cachefiles $MODPROBE_ARGS || exit 1
		fi
	}

	# Start daemon.
	daemon --pidfile=$PIDFILE $PROG ${OPTIONS}
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && touch $LOCKFILE
	;;
  stop)
	# Stop daemon and wait for it to complete
	echo -n $"Shutting down $PROG: "
	PID=`cat $PIDFILE`
	killproc -p $PIDFILE
	TIMEOUT=10
	while expr x`readlink /proc/$PID/exe` : ".*$PROG" >/dev/null
	do
		sleep 1
		TIMEOUT=`expr $TIMEOUT - 1`
		if [ $TIMEOUT -lt 0 ]; then break; fi
	done
	RETVAL=$?
	echo
	[ $RETVAL -eq 0 ] && rm -f $LOCKFILE
	;;
  status)
	status $PROG
	RETVAL=$?
	;;
  restart|reload)
	$0 stop
	$0 start
	RETVAL=$?
	;;
  condrestart)
	if [ -f $LOCKFILE ]; then
		$0 stop
		$0 start
		RETVAL=$?
	fi
	;;
  *)
	echo $"Usage: $0 {start|stop|restart|condstart|condrestart|status}"
	exit 1
esac

exit $RETVAL
