summaryrefslogtreecommitdiff
blob: a4134908fbcaadde0743bfad2f24eb23b11f9650 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/sbin/runscript
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2

depend() {
    need localmount
}

checkconfig() {
    if [[ -z ${DISK} || -z ${THRESHOLD} ]] ; then
	eerror "You should setup DISK and THRESHOLD in /etc/conf.d/hdapsd."
	return 1
    fi

    if [[ ! -e /sys/block/${DISK}/queue/protect ]] ; then
	eerror "No protect entry for ${DISK}!"
	eerror "Make sure your kernel is patched with the blk_freeze patch"
	return 1
    fi

    # Load the tp_smapi module first
    # This is not a requirement, but it helps hdapsd adaptive mode
    if [[ ! -e /sys/devices/platorm/smapi ]] ; then
	modprobe tp_smapi 2>/dev/null
    fi
	
    if [[ ! -d /sys/devices/platform/hdaps ]]; then
	ebegin "Loading hdaps module"
        modprobe hdaps
	eend $? || return 1
    fi
}

start() {
    checkconfig || return 1

    ebegin "Starting Hard Drive Active Protection System daemon"
    start-stop-daemon --start --exec /usr/sbin/hdapsd \
	--pidfile /var/run/hdapsd.pid \
	-- -b -p -d "${DISK}" -s "${THRESHOLD}" ${OPTIONS}
    eend $?
}
	
stop() {
    ebegin "Stopping Hard Drive Active Protection System daemon"
    start-stop-daemon --stop --exec /usr/sbin/hdapsd \
	--pidfile /var/run/hdapsd.pid
    eend $?
}