slackbuilds/system/sleepd/rc.sleepd

80 lines
1.5 KiB
Bash

#!/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