diff options
Diffstat (limited to 'testing/cachefilesd/cachefilesd.initd')
-rw-r--r-- | testing/cachefilesd/cachefilesd.initd | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/testing/cachefilesd/cachefilesd.initd b/testing/cachefilesd/cachefilesd.initd new file mode 100644 index 0000000000..589faa7d57 --- /dev/null +++ b/testing/cachefilesd/cachefilesd.initd @@ -0,0 +1,53 @@ +#!/sbin/openrc-run +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-fs/cachefilesd/files/cachefilesd.init,v 1.2 2010/09/20 08:45:22 jlec Exp $ + +depend() { + need localmount + use logger + before nfsmount +} + +checkxattr() { + local testpath testfile ret + testpath=$(awk '/^[[:space:]]*dir/ {print $2}' /etc/cachefilesd.conf) + testfile="${testpath}/.tmp-xattr-test.cachefilesd" + touch "${testfile}" + # creates a file in the testpath and tries to set an attribute on it to check + # if the support is available + attr -s test -V xattr "${testfile}" 2>&1 > /dev/null + ret=$? + rm -f "${testfile}" + [ ${ret} -ne 0 ] && eerror "xattr support missing on the ${testpath} filesystem" + return ${ret} +} + +start() { + ebegin "Starting cachefilesd" + checkxattr || return $? + # check if the cachefiles modules is loaded (or builtin) + if [ ! -c /dev/cachefiles ] ; then + local ret + einfo "/dev/cachefiles doesn't exist, trying to modprobe cachefiles" + modprobe cachefiles + ret=$? + if [ $ret -ne 0 ] ; then + eerror "cachefiles modules cannot be loaded so cachefilesd " + eerror "cannot be started, aborting. Did you build fscache in your " + eerror "kernel? Note that you need a 2.6.30 or better kernel" + return $ret + fi + fi + start-stop-daemon --start --pidfile /var/run/cachefilesd.pid --exec /usr/bin/cachefilesd -- ${OPTIONS} + eend $? "Failed to start cachefilesd. Check the system log to see the error" + +} + +stop() { + ebegin "Stopping cachefilesd" + start-stop-daemon --stop --exec /usr/bin/cachefilesd --pidfile /var/run/cachefilesd.pid + eend $? "Failed to stop cachefilesd" +} + + |