[Nut-upsuser] This guy must be an idiot

Leslie Rhorer lrhorer at satx.rr.com
Sat May 30 02:33:50 UTC 2009


> -----Original Message-----
> From: 'Brother Railgun of Reason' [mailto:alaric at caerllewys.net]
> Sent: Friday, May 29, 2009 10:45 AM
> To: Leslie Rhorer
> Subject: Re: [Nut-upsuser] This guy must be an idiot
> 
> On Fri, May 29, 2009 at 09:13:56AM -0500, Leslie Rhorer wrote:
> > > Are you certain your nut startup script is even actually being run?
> >
> > Not with absolute certainty, no.
> >
> > > This sounds like for some reason the system's never trying to run the
> > > script.
> >
> > 'Not really, since running the script manually has no effect, either.
> 
> If running the script manually does nothing, the script's probably
> wrong.

Then why does it work perfectly on system number one?


> What does your startup script look like?

#! /bin/sh
### BEGIN INIT INFO
# Provides:          nut
# Required-Start:    $local_fs $syslog $network
# Required-Stop:     $local_fs $syslog $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Network UPS Tools initscript
# Description:       This script take care of starting and stopping the
#                    Network UPS Tools components. When needed, it also
#                    handle the UPS hardware shutdown.
### END INIT INFO

# Author: Arnaud Quette <aquette at debian.org>

PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin
NAME=nut
DESC="Network UPS Tools"
DEFAULT=/etc/default/nut
. /lib/lsb/init-functions

[ -f $DEFAULT ] || exit 0
. $DEFAULT

pid_dir=/var/run/nut
upsmon_pid=${pid_dir}/upsmon.pid
upsd_pid=${pid_dir}/upsd.pid
upsd=/sbin/upsd
upsmon=/sbin/upsmon
log=">/dev/null 2>/dev/null"

# Check if /var/run/nut exists and has the correct perms
check_var_directory() {
        [ ! -d ${pid_dir} ] && mkdir -p ${pid_dir} \
                && chown root:nut ${pid_dir} \
                && chmod 770 ${pid_dir}
}

start_stop_server () {
  case "$START_UPSD" in
    y|Y|yes|YES|Yes)
      case "$1" in
        start)
          ! /sbin/upsdrvctl start >/dev/null 2>&1  &&  \
            log_progress_msg "(upsdrvctl failed)" || log_progress_msg
"upsdrvctl"
          start-stop-daemon -S -q -p $upsd_pid -x $upsd \
                  -- $UPSD_OPTIONS >/dev/null 2>&1
          ;;
        stop)
          start-stop-daemon -K -o -q -p $upsd_pid -n upsd >/dev/null 2>&1
          ! /sbin/upsdrvctl stop >/dev/null 2>&1  &&  \
            log_progress_msg "(upsdrvctl failed)" || log_progress_msg
"upsdrvctl"
          ;;
      esac
      ;;
    n|N|no|NO|No|*)
      return 1
      ;;
  esac
}

start_stop_client () {
  case "$START_UPSMON" in
    y|Y|yes|YES|Yes)
      case "$1" in
        start)
          start-stop-daemon -S -q -p $upsmon_pid -x $upsmon \
                  -- $UPSMON_OPTIONS >/dev/null 2>&1
          ;;
        stop)
          start-stop-daemon -K -o -q -p $upsmon_pid -n upsmon >/dev/null
2>&1
          ;;
      esac
      ;;
    n|N|no|NO|No|*)
      return 1
      ;;
  esac
}

case "$1" in

  start)
    log_daemon_msg "Starting $DESC"
    check_var_directory
    start_stop_server start && log_progress_msg "upsd"
    start_stop_client start && log_progress_msg "upsmon"
    log_end_msg 0
    ;;

  stop)
    log_daemon_msg "Stopping $DESC"
    start_stop_server stop && log_progress_msg "upsd"
    start_stop_client stop && log_progress_msg "upsmon"
    log_end_msg 0
    ;;

  reload)
    $upsd   -c reload >/dev/null 2>&1
    $upsmon -c reload >/dev/null 2>&1
    ;;

  restart|force-reload)
    log_daemon_msg "Restarting $DESC"
    start_stop_client stop
    start_stop_server stop
    sleep 5
    check_var_directory
    start_stop_server start && log_progress_msg "upsd"
    start_stop_client start && log_progress_msg "upsmon"
    log_end_msg 0
    ;;

  poweroff)
    flag=`sed -ne 's#^ *POWERDOWNFLAG *\(.*\)$#\1#p' /etc/nut/upsmon.conf`
    wait_delay=`sed -ne 's#^ *POWEROFF_WAIT= *\(.*\)$#\1#p'
/etc/default/nut`
    if [ -f "$flag" ] ; then
      if /sbin/upsmon -K >/dev/null 2>&1 ; then
        log_daemon_msg "Shutting down the UPS ..."
        sleep 1
        if /sbin/upsdrvctl shutdown ; then
          sleep 5
          log_progress_msg "Waiting for UPS to cut the power"
          log_end_msg 0
        else
          log_progress_msg "Shutdown failed."
          log_progress_msg "Waiting for UPS batteries to run down"
          log_end_msg 0
        fi
        if [ "$wait_delay" ] ; then
          log_daemon_msg " (will reboot after $wait_delay) ..."
          sleep "$wait_delay"
          /etc/init.d/reboot stop
        fi
      else
        log_daemon_msg "Power down flag is not set (UPS shutdown not
needed)"
      fi
    else
        if [ -z "$flag" ] ; then
          log_daemon_msg
"##########################################################"
          log_progress_msg "## POWERDOWNFLAG is not defined in
/etc/nut/upsmon.conf ##"
          log_progress_msg "##
##"
          log_progress_msg "## Please read the Manual page upsmon.conf(5)
##"
          log_progress_msg
"##########################################################"
          log_end_msg 0
        fi
    fi
    ;;

  *)
    N=/etc/init.d/$NAME
    log_daemon_msg "Usage" "$N
{start|stop|reload|restart|force-reload|poweroff}" >&2
    log_end_msg 0
    exit 1
    ;;

esac

exit 0




More information about the Nut-upsuser mailing list