diff options
Diffstat (limited to 'freefall.initd')
-rw-r--r-- | freefall.initd | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/freefall.initd b/freefall.initd new file mode 100644 index 000000000000..914bbabcd8b5 --- /dev/null +++ b/freefall.initd @@ -0,0 +1,45 @@ +#!/sbin/runscript +# Copyright 2012-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-apps/linux-misc-apps/files/freefall.initd,v 1.1 2014/12/29 00:12:01 robbat2 Exp $ + +checkconfig() { + if [ -z "$DISK" ] ; then + eerror "You need to setup DISK in /etc/conf.d/freefall first" + return 1 + fi + + if [ ! -b /dev/${DISK} ]; then + eerror "Could not find disk /dev/${DISK}!" + eerror "Adjust the DISK setting in /etc/conf.d/freefall" + return 1 + fi + + if [ ! -e /sys/block/${DISK}/device/unload_heads ] ; then + eerror "No protect entry for ${DISK}!" + eerror "Kernel 2.6.28 and above is required" + return 1 + fi + + if [ ! -c /dev/freefall ]; then + ebegin "Loading hp_accel module" + modprobe hp_accel + eend $? || return 1 + fi +} + +start () { + checkconfig || return 1 + + ebegin "Starting active hard-drive protection daemon" + start-stop-daemon --start --quiet \ + --exec /usr/sbin/freefall /dev/${DISK} + eend $? +} + +stop() { + ebegin "Stopping active hard-drive protection daemon" + start-stop-daemon --stop --quiet \ + --exec /usr/sbin/freefall + eend $? +} |