80 lines
1.5 KiB
Bash
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
|