#!/bin/sh # /etc/rc.d/rc.sleepd # Start/stop/restart the sleepd daemon PIDFILE="/var/run/sleepd.pid" DAEMON="/usr/sbin/sleepd" . /etc/sleepd.conf # Define start and stop functions sleepd_start() { [ $UID -eq 0 ] || exit 4 if [ -e $PIDFILE ]; then echo "sleepd appears to already be running. If this is not the case," echo "remove $PIDFILE and try again." exit 1 else echo "Starting sleepd: $DAEMON" sleepd $PARAMS > /dev/null 2>&1 ps -p $(cat $PIDFILE) > /dev/null 2>&1 if [ "$?" == 1 ]; then rm -f $PIDFILE echo "ERROR: $DAEMON failed to start." echo "ERROR: For more verbosity, run \"$DAEMON -n -v\" manually." echo "ERROR: Exiting..." fi fi } sleepd_force_stop() { [ $UID -eq 0 ] || exit 4 echo "Force stopping sleepd..." if [ -e $PIDFILE ]; then kill $(cat $PIDFILE) 2>/dev/null rm -f $PIDFILE 2>/dev/null else killall -9 sleepd 2>/dev/null fi } sleepd_stop() { [ $UID -eq 0 ] || exit 4 echo "Stopping sleepd..." if [ -e $PIDFILE ]; then kill $(cat $PIDFILE) 2>/dev/null rm -f $PIDFILE 2>/dev/null fi } sleepd_status() { sleepctl status } # See how we were called and take appropriate action case $1 in start) sleepd_start ;; stop) sleepd_stop ;; force_stop) sleepd_force_stop ;; restart) sleepd_force_stop sleepd_start ;; status) sleepd_status ;; *) echo "Usage: $0 {start|stop|force_stop|restart|status}" exit 1 ;; esac