blob: 7962782baac019f6944176500e9fef200a7e0840 [file] [log] [blame]
#!/bin/bash
#
# cachefilesd Start up and shut down the cachefilesd daemon
#
### BEGIN INIT INFO
# Provides: fscache
# Required-Start: $local_fs $time
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Control the persistent network fs caching service
# Description: CacheFiles provides persistent local caching for network (and
# other) filesystems in a directory on a locally mounted disk.
### END INIT INFO
#
# chkconfig: - 13 87
# description: Starts user-level daemon that manages the caching files \
# used by Network Filsystems
#
# Source function library.
. /etc/init.d/functions
RETVAL=0
CONFFILE=/etc/cachefilesd.conf
LOCKFILE=/var/lock/subsys/cachefilesd
PIDFILE=/var/run/cachefilesd.pid
MODPROBE=/sbin/modprobe
MODPROBE_ARGS=""
PROG="cachefilesd"
OPTIONS="-f $CONFFILE"
[ ! -x /sbin/$PROG ] && exit 0
# Check for and source configuration file otherwise set defaults
[ -f /etc/sysconfig/$PROG ] && . /etc/sysconfig/$PROG
rh_status() {
status -p $PIDFILE -l $(basename $LOCKFILE) $PROG
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
start() {
[ `id -u` -eq 0 ] || return 4
[ -x $exec ] || return 5
[ -f $config ] || return 6
# Make sure the daemon is not already running.
rh_status_q && return 0
rm -f $LOCKFILE
echo -n $"Starting $PROG: "
# Set security contexts
/sbin/restorecon /sbin/cachefilesd || return 1
/sbin/restorecon /dev/cachefiles || return 1
/sbin/restorecon -R `awk -- '/^dir/ { print $2 }' $CONFFILE` || return 1
# Load the cachefiles module if needed
[ -x "$MODPROBE" ] && {
if ! /sbin/lsmod | grep cachefiles > /dev/null ; then
$MODPROBE cachefiles $MODPROBE_ARGS || return 1
fi
}
# Start daemon.
daemon --pidfile=$PIDFILE $PROG ${OPTIONS} 2>/dev/null
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch $LOCKFILE
return $RETVAL
}
stop() {
[ `id -u` -eq 0 ] || return 4
rh_status_q || return 0
echo -n $"Shutting down $PROG: "
killproc -p $PIDFILE $PROG
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f $LOCKFILE
return $RETVAL
}
usage() {
echo $"Usage: $0 {start|stop|restart|force-reload|condrestart|try-restart|status}"
}
if [ $# -gt 1 ]; then
exit 2
fi
case "$1" in
start|condstart)
start
;;
stop)
stop
;;
restart|force-reload)
stop; start
;;
condrestart|try-restart)
rh_status_q || exit 0
stop ; start
;;
reload)
usage
# unimplemented feature
exit 3
;;
status)
rh_status
;;
*)
usage
exit 2
;;
esac
exit $?