diff options
Diffstat (limited to 'system/hdapsd/rc.hdapsd')
-rw-r--r-- | system/hdapsd/rc.hdapsd | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/system/hdapsd/rc.hdapsd b/system/hdapsd/rc.hdapsd new file mode 100644 index 0000000000..50ea4ce266 --- /dev/null +++ b/system/hdapsd/rc.hdapsd @@ -0,0 +1,86 @@ +#!/bin/sh + +# /etc/rc.d/rc.hdapsd +# Start/stop the HDAPS deamon +# Copyright (c) 2008 alkos333 <me@alkos333.net> + +# Define a quick function to alert that the expected config file is bad +bad_config() { + printf "Error: /etc/hdapsd.conf either is not readable\n" + printf " or contains a syntax error. Exiting...\n" + exit 1 +} + +# Source in the config file +if [ -r /etc/hdapsd.conf ]; then + . /etc/hdapsd.conf 2>/dev/null || bad_config +fi + +HD_DEV=${HD_DEV:-/dev/sda} # Defaults to /dev/sda +SENSITIVITY=${SENSITIVITY:-15} # Defaults to 15 +PIDFILE=${PIDFILE:-"/var/run/hdapsd.pid"} # Default +USE_SYSLOG=${USE_SYSLOG:-1} # 0=no 1=yes Defaults to yes + +if [ "$USE_SYSLOG" = "1" ]; then + ENABLESYSLOG="-l" +else + ENABLESYSLOG="" +fi + +hdapsd_start() { + if [ -f ${PIDFILE} ]; then + printf "HDAPS appears to already be running...\n" + printf "If that's not the case, then remove $PIDFILE and try again...\n" + exit 1 + else + # Sanity check, just in case + if [ ! -b ${HD_DEV} ]; then + printf "${HD_DEV} either does not exist or is not a block device.\n" + printf "Check your configuration. Exiting.\n" + exit 1 + else + printf "Starting HDAPS daemon... \n" + /usr/sbin/hdapsd -v -d $(basename ${HD_DEV}) -s ${SENSITIVITY} ${ENABLESYSLOG} \ + -a -b --pidfile=${PIDFILE} 1> /dev/null + fi + fi +} + +hdapsd_stop() { + printf "Stopping HDAPS daemon...\n" + if [ -f ${PIDFILE} ]; then + kill $(cat ${PIDFILE}) 2> /dev/null + rm -f ${PIDFILE} + else + killall hdapsd 2>/dev/null + fi +} + +hdapsd_status() { + if [ -f ${PIDFILE} ]; then + printf "HDAPS daemon is running...\n" + else + printf "HDAPS daemon is stopped...\n" + fi +} + +case $1 in + start) + hdapsd_start + ;; + stop) + hdapsd_stop + ;; + restart) + hdapsd_stop + hdapsd_start + ;; + status) + hdapsd_status + ;; + *) + printf "Usage $0 {start|stop|restart|status}\n" + exit 1 + ;; +esac + |