Results 1 to 4 of 4

Thread: Nut seems to not be working

  1. #1

    Default Nut seems to not be working

    Here's the problems.

    First, when "nut" is running sometimes the Linux "Power Management Preference" (PMP) shows a UPS tab, and sometimes it doesn't. I haven't figured it all out yet but it seem rather random when I do an init 3 then init 5. That is, on restarting X Windows PMP might or might not have a UPS tab.

    Regardless of whether PMP has a UPS tab or not, nut seems to work just fine.

    However, that's a side issue. The real issue that I am having is that nut doesn't shut down my server when I put the UPS on battery. I have run the UPS right down to 10% and it's minimum threshold is 20%.

    And, even though nut doesn't shut down my server it does work in every other way that I can test. Even the web interface works.

    Could someone who has got this working please look at my configuration and let me know if they see anything wrong, or give ideas on how to troubleshoot this, please?

    Here is my configuration:

    Code:
    hosts.conf
    MONITOR myups@localhost "Tripp Lite UPS SU1500XL"
    
    nut.conf
    MODE = standalone (also tried with "MODE = none")
    
    ups.conf
    [myups]
            driver = usbhid-ups
            port = /dev/usb/hiddev0
            desc = "Tripp Lite UPS SU1500XL
    
    upsd.conf
    
    upsd.users
    [upsmaster]
            password = ***********
            allowfrom = localhost
            upsmon master
            actions = SET
            instcmds = ALL
    
    [upsslave]
            password = ***********
            allowfrom = localhost
            upsmon slave
    
    upsmon.conf
    MONITOR myups@localhost 1 upsmaster ******** master
    MINSUPPLIES 1
    SHUTDOWNCMD "/sbin/shutdown -h now"
    POLLFREQ 5
    POLLFREQALERT 5
    HOSTSYNC 15
    DEADTIME 15
    POWERDOWNFLAG /etc/killpower
    NOTIFYFLAG ONLINE   SYSLOG
    NOTIFYFLAG COMMOK   SYSLOG
    NOTIFYFLAG SHUTDOWN SYSLOG
    NOTIFYFLAG ONBATT   SYSLOG+WALL
    NOTIFYFLAG LOWBATT  SYSLOG+WALL
    NOTIFYFLAG FSD      SYSLOG+WALL
    NOTIFYFLAG NOCOMM   SYSLOG+WALL
    NOTIFYFLAG COMMBAD  SYSLOG+WALL
    
    RBWARNTIME 43200
    NOCOMMWARNTIME 300
    FINALDELAY 5
    
    upssched.conf
    CMDSCRIPT /bin/upssched-cmd
    
    upsset.conf
    I_HAVE_SECURED_MY_CGI_DIRECTORY
    
    The two HTML files are too long to post but are unchanged anyway.

  2. #2
    Carlos E. R. NNTP User

    Default Re: Nut seems to not be working

    On 2010-10-08 10:36, Reg gie wrote:
    >
    > Here's the problems.
    >
    > First, when "nut" is running sometimes the Linux "Power Management
    > Preference" (PMP) shows a UPS tab, and sometimes it doesn't. I haven't
    > figured it all out yet but it seem rather random when I do an init 3
    > then init 5. That is, on restarting X Windows PMP might or might not
    > have a UPS tab.
    >
    > Regardless of whether PMP has a UPS tab or not, nut seems to work just
    > fine.
    >
    > However, that's a side issue. The real issue that I am having is that
    > nut doesn't shut down my server when I put the UPS on battery. I have
    > run the UPS right down to 10% and it's minimum threshold is 20%.
    >
    > And, even though nut doesn't shut down my server it does work in every
    > other way that I can test. Even the web interface works.
    >
    > Could someone who has got this working please look at my configuration
    > and let me know if they see anything wrong, or give ideas on how to
    > troubleshoot this, please?


    I have it working on another machine with 11.0 - currently it is using 11.2 but I haven't revised if
    it still works. My comments will be based on the 11.0 config.

    > Here is my configuration:
    >
    >
    > Code:
    > --------------------
    >
    > HOSTS.CONF
    > MONITOR myups@localhost "Tripp Lite UPS SU1500XL"


    A shorter name is probably safer. I use "Local UPS".

    >
    > NUT.CONF
    > MODE = standalone (also tried with "MODE = none")


    I don't have that file. My version might be older, though.


    > UPS.CONF
    > [myups]
    > driver = usbhid-ups
    > port = /dev/usb/hiddev0
    > desc = "Tripp Lite UPS SU1500XL


    I had to fight this one. I had to run it manually and see what happened - which in my case is that
    the daemon had a long startup sequence which lasted a bit more than a minute, and the timeout was
    precisely a minute - thus it failed. Thus my config is:

    maxstartdelay = 70

    [myups]
    # "BELKIN Active Battery Backup"
    driver = megatec_usb -DDD
    port = auto
    # port=/dev/hiddev0
    desc = "Local UPS"
    offdelay=1
    # user = root


    I think I wrote notes somewhere on how I discovered this.


    > UPSD.CONF


    It is empty? Weird. I have:

    # Access Control Lists (ACLs)

    ACL all 0.0.0.0/0
    ACL localhost 127.0.0.1/32

    ACCEPT localhost
    REJECT all


    > UPSD.USERS
    > [upsmaster]
    > password = ***********
    > allowfrom = localhost
    > upsmon master
    > actions = SET
    > instcmds = ALL
    >
    > [upsslave]
    > password = ***********
    > allowfrom = localhost
    > upsmon slave
    >


    I have:

    [admin]
    password = mypass
    actions = SET
    instcmds = ALL

    [upsd]
    password = 123456
    allowfrom = localhost
    upsmon master


    > UPSMON.CONF
    > MONITOR myups@localhost 1 upsmaster ******** master
    > MINSUPPLIES 1
    > SHUTDOWNCMD "/sbin/shutdown -h now"
    > POLLFREQ 5
    > POLLFREQALERT 5
    > HOSTSYNC 15
    > DEADTIME 15
    > POWERDOWNFLAG /etc/killpower
    > NOTIFYFLAG ONLINE SYSLOG
    > NOTIFYFLAG COMMOK SYSLOG
    > NOTIFYFLAG SHUTDOWN SYSLOG
    > NOTIFYFLAG ONBATT SYSLOG+WALL
    > NOTIFYFLAG LOWBATT SYSLOG+WALL
    > NOTIFYFLAG FSD SYSLOG+WALL
    > NOTIFYFLAG NOCOMM SYSLOG+WALL
    > NOTIFYFLAG COMMBAD SYSLOG+WALL
    >
    > RBWARNTIME 43200
    > NOCOMMWARNTIME 300
    > FINALDELAY 5


    I have:

    RUN_AS_USER upsd

    MONITOR myups@localhost 1 upsd 123456 master

    MINSUPPLIES 1

    # SHUTDOWNCMD "/sbin/shutdown -h +0"
    # Triggers hibernation
    SHUTDOWNCMD "/usr/bin/powersave -U"


    # Example:
    # NOTIFYCMD /usr/local/ups/bin/notifyme

    # Ojo, que este es especial de suse.
    NOTIFYCMD /usr/lib/powersave/powersave-notify
    # editar el de arriba para aadir la linea "/usr/sbin/upssched $*" al final
    #NOTIFYCMD /usr/sbin/upssched

    (notify command above is suse specific; and powersave-notify had to be edited to add
    "/usr/sbin/upssched $*" as the last line. I wrote a bugzilla about this, it was broken).

    POLLFREQ 5
    POLLFREQALERT 5
    HOSTSYNC 15
    DEADTIME 15
    POWERDOWNFLAG /etc/killpower


    NOTIFYFLAG REPLBATT SYSLOG
    NOTIFYFLAG NOPARENT SYSLOG

    NOTIFYFLAG ONLINE SYSLOG+EXEC
    NOTIFYFLAG COMMOK SYSLOG+EXEC
    NOTIFYFLAG SHUTDOWN SYSLOG+EXEC

    NOTIFYFLAG ONBATT SYSLOG+EXEC
    NOTIFYFLAG LOWBATT SYSLOG+EXEC
    NOTIFYFLAG FSD SYSLOG+EXEC
    NOTIFYFLAG NOCOMM SYSLOG+EXEC
    NOTIFYFLAG COMMBAD SYSLOG+EXEC

    RBWARNTIME 43200
    NOCOMMWARNTIME 300
    FINALDELAY 5


    > UPSSCHED.CONF
    > CMDSCRIPT /bin/upssched-cmd


    #CMDSCRIPT /usr/local/ups/bin/upssched-cmd
    CMDSCRIPT /bin/upssched-cmd


    (that file has to be edited, original is a sample, I think. I don't have that file in the backup I'm
    looking at to write this)

    PIPEFN /var/lib/ups/upssched/upssched.pipe
    #
    LOCKFN /var/lib/ups/upssched/upssched.lock

    AT ONBATT * EXECUTE onbattery
    AT ONLINE * EXECUTE ups-back-on-power
    AT ONBATT * START-TIMER onbattwarn 10
    AT ONBATT * START-TIMER hybernate 30
    AT ONLINE * CANCEL-TIMER onbattwarn
    AT ONLINE * CANCEL-TIMER hybernate



    >
    > UPSSET.CONF
    > I_HAVE_SECURED_MY_CGI_DIRECTORY


    Ok.


    >
    > The two HTML files are too long to post but are unchanged anyway.


    They wouldn't matter for it to work.


    For testing, you should see entries in syslog the moment or a bit later than when you pull the plug,
    and later when it is going to power off (for which it needs the right command to be configured). In
    my case, I power off much earlier, a minute or two after power failure.

    This is done by the "AT ONBATT" lines, but the tokens given to "START-TIMER" must exist. IIRC they
    are arbitrary tokens for a "case" selector in the script /bin/upssched-cmd you write. Perhaps that's
    the glue you are missing (from memory, I can't check right now).

    Ok, found a copy. The default file is this:

    Code:
    case $1 in
    upsgone)
    logger -t upssched-cmd "The UPS has been gone for awhile"
    ;;
    *)
    logger -t upssched-cmd "Unrecognized command: $1"
    ;;
    esac
    My modified file was this (a later version, actually, which I can't find now):

    Code:
    case $1 in
    upsgone)
    logger -t upssched-cmd "The UPS has been gone for awhile"
    ;;
    #Cer
    onbattery)
    touch /etc/ups-on-battery
    logger -t upssched-cmd "Estamos en batera!"
    ;;
    onbattwarn)
    logger -t upssched-cmd "Llevamos en batera 30 segundos, hibernaremos en otros 30"
    ;;
    hybernate)
    /usr/sbin/upsmon -c fsd
    ;;
    ups-back-on-power)
    /bin/rm -f /etc/ups-on-battery
    logger -t upssched-cmd "La corriente ha vuelto a tiempo."
    ;;
    *)
    logger -t upssched-cmd "Unrecognized command: $1"
    ;;
    esac

    That script is actually responsible of doing things, it is crucial.

    Or... hold on. It is crucial on my case, because I power off based on time, not based on remaining
    battery charge (the default setup). The default means a deep discharge. If you have a second power
    failure in the same day, battery will still be depleted and it is possible it will not last even two
    minutes.


    In your case, your problem might be that the unit is not reporting low battery, or the daemon not
    seeing it, or that it is not triggering the appropriate response.

    [...]


    I found my notes, but they are in Spanish. Let me see...



    /usr/lib/powersave/powersave-notify is suse specific. It contains (or contained):

    Code:
    /bin/dbus-send --system --print-reply --dest=com.novell.powersave \
    /com/novell/powersave/scripts \
    com.novell.powersave.scripts.ScriptReturn int32:-1 int32:2 \
    string:"$*"
    and is not documented (and obsolete).

    NOTIFYCMD is called with the events defined "RUN" in upsmon.conf. Has to be changed:

    NOTIFYCMD /usr/sbin/upssched

    upssched.conf:

    CMDSCRIPT /bin/upssched-cmd

    # default values:
    IPEFN /var/lib/ups/upssched/upssched.pipe
    LOCKFN /var/lib/ups/upssched/upssched.lock


    Create that directory, owned by upsd.

    There is a "/usr/bin/upssched-cmd", better move to /bin, as /usr might not be mounted yet.
    (I reported all this in a Bugzilla, so they should be corrected in your version)



    Furthermore, this procedure is incomplete: after hibernation succeeds, the UPS remains ON, because
    the procedure does not send the power-off command to the UPS. The documentation contains a method to
    use when the computer is to be powered off, but not when it is to be suspended to disk.

    This command could perhaps be added to pm-utils somewhere, but is is not documented.



    --
    Cheers / Saludos,

    Carlos E. R.
    (from 11.2 x86_64 "Emerald" at Telcontar)

  3. #3

    Default Re: Nut seems to not be working

    Thank you for this! I will go through it carefully and get back to you.

    I too have 11.2 on a 64bit system, which is what I am trying to get this to work on.

    Regarding my issue with the UPS tab sometimes showing. It seem to pretty consistently not show. I don't know if this is right or not but the docs. seem to suggest that it should be showing and that nut uses it. However, since ultimately I won't be using X Windows on the server it doesn't really matter (on the other hand I like to contribute so I will probably submit a ticket over it.)

    However, here is some behavior that's not okay and I thought I would share this since you haven't tested on 11.2 yet. If I go to battery power for a while and then back to mains power, after the battery is charged up (fully charged I believe is the trigger but I didn't see it when it happened so I can't say for sure) the UPS tab reappears and nut gets disengaged from the UPS. You might want to check if your's is the same, if so I would say that's a bug that should be submitted. With you almost instantly powering down I don't know if this would actually affect you, I just got great deal on some UPS batteries so I have a couple of hours of backup now so it's something I need to deal with.

    Thanks,
    Reg

  4. #4

    Default Re: Nut seems to not be working

    There does seem to be some differences in setup from your version to now. However, for 11.2 I found this website and that got it going:
    NUT 2.4.1 setup with openSUSE 11.2

    The only problem I found is that he used this command, "/usr/bin/powersave -U", which showed up my logs but didn't actually shutdown my system so for a while I thought it still wasn't working.

    Also, he uses scripts for timing whereas I want to just do things on triggers so I simply left that part out (calling the nut scheduler) which worked fine.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •