cvsdist 0750536
#! /bin/bash
cvsdist bfc54a3
#
3aed2dd
# ups: Starts the Network UPS Tools
3aed2dd
#
cvsdist b21753e
# chkconfig: - 26 74
cvsdist 81ab26c
# description: Network UPS Tools is a collection of programs which provide a common \
3aed2dd
#		interface for monitoring and administering UPS hardware.
cvsdist bfc54a3
# processname: upsd
cvsdist bfc54a3
# config: /etc/ups/
3aed2dd
# config: /etc/sysconfig/ups
3aed2dd
#
3aed2dd
### BEGIN INIT INFO
3aed2dd
# Provides: ups
3aed2dd
# Required-Start: $syslog $network $named
9c6ba30
# Required-Stop: $local_fs
3aed2dd
# Default-Stop: 0 1 6
3aed2dd
# Short-Description: Starts the Network UPS tools
3aed2dd
# Description: Network UPS Tools is a collection of programs which provide a common \
3aed2dd
#		interface for monitoring and administering UPS hardware. 
3aed2dd
### END INIT INFO
cvsdist bfc54a3
cvsdist bfc54a3
# Source function library.
cvsdist bfc54a3
if [ -f /etc/init.d/functions ]; then
cvsdist 0750536
	. /etc/init.d/functions
cvsdist bfc54a3
elif [ -f /etc/rc.d/init.d/functions ]; then
cvsdist 0750536
	. /etc/rc.d/init.d/functions
cvsdist bfc54a3
else
cvsdist 0750536
	exit 0
cvsdist bfc54a3
fi
cvsdist bfc54a3
cvsdist bfc54a3
# Get config.
cvsdist bfc54a3
if [ -f /etc/sysconfig/ups ]; then
cvsdist bfc54a3
	. /etc/sysconfig/ups
cvsdist bfc54a3
else
cvsdist bfc54a3
	SERVER="no"
cvsdist bfc54a3
fi
cvsdist bfc54a3
cvsdist bfc54a3
start() {
cvsdist 726fc72
	if [ "$SERVER" = "yes" ]; then
eb2ea75
		echo -n $"Starting UPS driver controller: "
fd8fc39
		daemon /sbin/upsdrvctl start > /dev/null 2>&1 && success || failure
eb2ea75
		RETVAL=$?
cvsdist 726fc72
		echo
cvsdist bfc54a3
cvsdist 726fc72
		prog="upsd"
cvsdist 726fc72
		echo -n $"Starting $prog: "
fd8fc39
		daemon /usr/sbin/upsd $UPSD_OPTIONS > /dev/null 2>&1 && success || failure
eb2ea75
		if [ "$RETVAL" = 0 ]; then
eb2ea75
			RETVAL=$?
eb2ea75
		fi
cvsdist 726fc72
		echo
cvsdist bfc54a3
cvsdist 726fc72
		echo -n $"Starting UPS monitor (master): "
4e8c107
		daemon --pidfile /var/run/nut/upsmon.pid /usr/sbin/upsmon > /dev/null 2>&1 && success || failure
eb2ea75
		if [ "$RETVAL" = 0 ]; then
eb2ea75
			RETVAL=$?
eb2ea75
		fi
cvsdist 726fc72
		echo
cvsdist 726fc72
	else
cvsdist 726fc72
		echo -n $"Starting UPS monitor (slave): "
4e8c107
		daemon --pidfile /var/run/nut/upsmon.pid /usr/sbin/upsmon > /dev/null 2>&1 && success || failure
cvsdist 726fc72
		echo
cvsdist 726fc72
	fi
cvsdist bfc54a3
cvsdist 726fc72
	[ "$RETVAL" = 0 ] && touch /var/lock/subsys/ups
cvsdist bfc54a3
}
cvsdist bfc54a3
cvsdist bfc54a3
stop() {
cvsdist 0750536
	echo -n $"Stopping UPS monitor: "
4e8c107
	killproc -p /var/run/nut/upsmon.pid upsmon
cvsdist bfc54a3
	echo
cvsdist bfc54a3
cvsdist 0750536
	if [ "$SERVER" = "yes" ]; then
cvsdist 0750536
		prog="upsd"
cvsdist 0750536
		echo -n $"Stopping $prog: "
fd8fc39
		killproc upsd > /dev/null 2>&1 && success || failure
cvsdist 0750536
		RETVAL=$?
cvsdist 0750536
		echo
cvsdist 0750536
7d58c25
		echo -n $"Shutting down UPS driver controller: "
fd8fc39
		/sbin/upsdrvctl stop > /dev/null 2>&1 && success || failure
fd8fc39
		if [ "$RETVAL" = 0 ]; then
fd8fc39
			RETVAL=$?
cvsdist 0750536
		fi
cvsdist 0750536
		echo
cvsdist 0750536
	fi
cvsdist 0750536
	[ "$RETVAL" = 0 ] && rm -f /var/lock/subsys/ups
cvsdist bfc54a3
}
cvsdist bfc54a3
cvsdist bfc54a3
restart() {
cvsdist bfc54a3
	stop
4e8c107
        waitmore=5
4e8c107
        while [ -n "$(ls /var/run/nut/)" -a $waitmore -ge 1 ]
4e8c107
        do
4e8c107
          sleep 1
4e8c107
          waitmore=$((waitmore-1))
4e8c107
        done
cvsdist bfc54a3
	start
cvsdist bfc54a3
}
cvsdist bfc54a3
9d928db
reload() {
9d928db
	# FIXME: upsd and upsmon always return 0
9d928db
	# => can't tell if reload was successful
9d928db
	if [ "$SERVER" = "yes" ]; then
9d928db
		action "Reloading upsd:" /usr/sbin/upsd -c reload
9d928db
		RETVAL=$?
9d928db
	fi
9d928db
	action "Reloading upsmon:" /usr/sbin/upsmon -c reload
9d928db
	if [ "$RETVAL" = 0 ]; then
9d928db
		RETVAL=$?
9d928db
	fi
9d928db
}
9d928db
cvsdist bfc54a3
# See how we are called.
cvsdist bfc54a3
case "$1" in
cvsdist 0750536
	start)
cvsdist 0750536
		start ;;
cvsdist 0750536
cvsdist 0750536
	stop)
cvsdist 0750536
		stop ;;
cvsdist 0750536
cvsdist 0750536
	restart)
cvsdist 0750536
		restart ;;
cvsdist 0750536
9d928db
	try-restart)
cvsdist 0750536
		[ -f /var/lock/subsys/ups ] && restart || :
cvsdist 0750536
		;;
cvsdist 0750536
9d928db
	reload)
9d928db
		reload ;;
9d928db
9d928db
	force-reload)
9d928db
		restart ;;
9d928db
cvsdist 0750536
	status)
cvsdist 0750536
		if [ "$SERVER" = "yes" ]; then
cvsdist 0750536
			status upsd
cvsdist 0750536
		fi
cvsdist 0750536
		status upsmon
cvsdist 0750536
		;;
cvsdist 0750536
cvsdist 0750536
	*)
9d928db
		echo $"Usage: $0 {start|stop|restart|try-restart|reload|force-reload|status}"
9d928db
		RETVAL=3
cvsdist bfc54a3
esac
cvsdist bfc54a3
cvsdist bfc54a3
exit $RETVAL