--- rpms/nut/sme8/ups.init 2007/06/12 20:10:51 1.1 +++ rpms/nut/sme8/ups.init 2007/10/09 18:34:03 1.2 @@ -25,28 +25,24 @@ fi start() { if [ "$SERVER" = "yes" ]; then - # Exit if server = yes and model = NONE (not configured) - - if [ "$MODEL" = "NONE" ]; then - exit 0 - fi - - echo -n $"Starting $MODEL: " - if [ "$MODEL" = "upsdrvctl" ]; then - daemon /sbin/upsdrvctl start - else - daemon /sbin/$MODEL $OPTIONS $DEVICE - fi + echo -n $"Starting UPS driver controller: " + daemon /sbin/upsdrvctl start + RETVAL=$? echo prog="upsd" echo -n $"Starting $prog: " daemon /usr/sbin/upsd $UPSD_OPTIONS - RETVAL=$? + if [ "$RETVAL" = 0 ]; then + RETVAL=$? + fi echo echo -n $"Starting UPS monitor (master): " daemon /usr/sbin/upsmon + if [ "$RETVAL" = 0 ]; then + RETVAL=$? + fi echo else echo -n $"Starting UPS monitor (slave): " @@ -85,6 +81,19 @@ restart() { start } +reload() { + # FIXME: upsd and upsmon always return 0 + # => can't tell if reload was successful + if [ "$SERVER" = "yes" ]; then + action "Reloading upsd:" /usr/sbin/upsd -c reload + RETVAL=$? + fi + action "Reloading upsmon:" /usr/sbin/upsmon -c reload + if [ "$RETVAL" = 0 ]; then + RETVAL=$? + fi +} + # See how we are called. case "$1" in start) @@ -96,14 +105,24 @@ case "$1" in restart) restart ;; - condrestart) + try-restart) [ -f /var/lock/subsys/ups ] && restart || : ;; + reload) + reload ;; + + force-reload) + restart ;; + status) if [ "$SERVER" = "yes" ]; then if [ "$MODEL" = "upsdrvctl" ]; then - /sbin/upsdrvctl -v status + # show status of each configured driver + for MYMODEL in $(egrep '^[[:space:]]*driver' /etc/ups/ups.conf \ + | sed 's/.*=[[:space:]]*//'); do + status $MYMODEL + done else status $MODEL fi @@ -113,8 +132,8 @@ case "$1" in ;; *) - echo $"Usage: $0 {start|stop|restart|condrestart|status}" - exit 1 + echo $"Usage: $0 {start|stop|restart|try-restart|reload|force-reload|status}" + RETVAL=3 esac exit $RETVAL