[Nut-upsuser] upssched Not Running
James
bjlockie at lockie.ca
Wed Apr 3 21:33:05 BST 2019
Was /etc/nut/upssched-cmd automatically installed?
I don't have it on my raspberry pi. :-(
On 2019-04-03 1:54 p.m., Mike wrote:
> I figured this out and it is working now. This fix seems strange to me
> and is possibly a bug. I'm sharing in case it might help others.
>
> I had to uncomment all of the NOTIFYFLAG statements whether I was
> changing them or not. Previously, I had a mixture of commented and
> uncommented, assuming the commented ones used default values.
>
> $ grep -Ev "^(#|\s*$)" /etc/nut/upsmon.conf
> RUN_AS_USER nut
> MONITOR myups1 at localhost:3493 1 nutmaster pass master
> MINSUPPLIES 1
> SHUTDOWNCMD "/sbin/shutdown --poweroff +1"
> NOTIFYCMD /sbin/upssched
> POLLFREQ 10
> POLLFREQALERT 5
> HOSTSYNC 15
> DEADTIME 15
> POWERDOWNFLAG /etc/nut/killpower
> NOTIFYFLAG ONLINE SYSLOG+WALL+EXEC
> NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
> NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC
> NOTIFYFLAG FSD SYSLOG+WALL+EXEC
> NOTIFYFLAG COMMOK SYSLOG+WALL
> NOTIFYFLAG COMMBAD SYSLOG+WALL
> NOTIFYFLAG SHUTDOWN SYSLOG+WALL
> NOTIFYFLAG REPLBATT SYSLOG+WALL
> NOTIFYFLAG NOCOMM SYSLOG+WALL
> NOTIFYFLAG NOPARENT SYSLOG+WALL
> RBWARNTIME 43200
> NOCOMMWARNTIME 300
> FINALDELAY 60
> CERTVERIFY 0
> FORCESSL 0
>
> Another thing worth noting, and probably unrelated to this specific
> scenario, is somehow I have a "nut" user and a "nutuser" user. I don't
> know how that happened. On my Debian setup (details in previous
> message), user "nutuser" does not work, where the "nut" user does work.
> Perhaps this happened during one of the incremental updates over the
> years and I thought I'd point that out as well as it is confusing.
>
> I have to say that I'm surprised that I got no responses at all. It
> would have been nice to get "I don't know" and perhaps had a useful
> exchange, or "We're tired of this topic". Given my discovery to make it
> working, I don't consider that an obvious fix and did not come across it
> in any documentation or previous threads.
>
> Thanks,
> -MikeD
>
> ------------------------------------------------------------------------
> *Date:* Saturday, March 30, 2019, at 04:13:12 PM PDT (GMT/UMT -0700)
> *From:* Mike <miked at softtalker.com>
> *To:* Nut Users <nut-upsuser at alioth-lists.debian.net>
> *Subject:* [Nut-upsuser] upssched Not Running
>
> Hello,
>
> I have a problem with upssched working in my NUT setup. upssched is not
> executing at all while running on battery. I'm trying to execute some
> shell scripts before the shutdown begins. I have 3 computers connected
> to a single UPS. There is a Debian (testing) connected to the UPS via
> USB, and NUT was installed using a standard Debian repo using apt-get.
> The two other boxes are Windows 10 Pro with no data connections to the
> UPS. I have cygwin installed on the Windows boxes and I've written a
> shell script to shell in and shutdown the Windows boxes. I had problems
> getting Windows NUT to work so I gave up and went with this model (was a
> netserver/netclient setup, now I'm standalone with upssched). It seems
> I'm really close but I need to figure out the upssched issue. I
> appreciate the support and patience as I see many variances of this
> problem come up on the mailing list. I don't see my particular issue
> and I've checked the other threads and confirmed those particular fixes
> are implemented in my setup.
>
> I saw one thread discussing SELinux. I do not have SELinux but I do
> have AppArmor running. I don't see any indication in /var/log/syslog
> that AppArmor is blocking execution. I also don't see any NUT specific
> config for AppArmor. I run a pretty standard, out-of-the-box AppArmor
> setup.
>
> I see nothing in /var/log/syslog when the low battery condition hits and
> we just go straight to a shutdown of the Debian box while nothing
> happens on the windows boxes, which tells me that it's completely
> skipping upssched. /etc/nut/upssched-cmd runs as expected when called
> via sudo manually. Below are my NUT config files and some other
> (hopefully) useful information.
>
> NUT version:
> $ upsd -V
> Network UPS Tools upsd 2.7.4
>
> nut.conf:
> $ grep -Ev "^(#|\s*$)" /etc/nut/nut.conf
> MODE=standalone
>
> ups.conf:
> $ grep -Ev "^(#|\s*$)" /etc/nut/ups.conf
> [myups1]
> driver = usbhid-ups
> port = auto
> vendorid = 0764
> desc = "CyberPower 1350VA/CP1500AVR/CST135XLU on rockenfield"
> pollinterval = 10
> ignorelb
> override.battery.charge.low = 80
> override.battery.charge.warning = 90
> override.battery.runtime.low = 900
>
> upsd.conf:
> $ grep -Ev "^(#|\s*$)" /etc/nut/upsd.conf
> LISTEN 192.168.123.1 3493
> LISTEN 127.0.0.1 3493
>
> upsd.users:
> $ grep -Ev "^(#|\s*$)" /etc/nut/upsd.users
> [nutmaster]
> password = pass
> upsmon master
> [nutslave]
> password = pass
> upsmon slave
>
> upsmon.conf:
> $ grep -Ev "^(#|\s*$)" /etc/nut/upsmon.conf
> RUN_AS_USER nut
> MONITOR myups1 at localhost:3493 1 nutmaster pass master
> MINSUPPLIES 1
> SHUTDOWNCMD "/sbin/shutdown --poweroff +0"
> NOTIFYCMD /sbin/upssched
> POLLFREQ 10
> POLLFREQALERT 5
> HOSTSYNC 15
> DEADTIME 15
> POWERDOWNFLAG /etc/killpower
> NOTIFYFLAG LOWBATT SYSLOG+WALL+EXEC
> RBWARNTIME 43200
> NOCOMMWARNTIME 300
> FINALDELAY 30
> CERTVERIFY 0
> FORCESSL 0
>
> -----
> upssched.conf:
> $ grep -Ev "^(#|\s*$)" /etc/nut/upssched.conf
> CMDSCRIPT /etc/nut/upssched-cmd
> PIPEFN /etc/nut/upssched.pipe
> LOCKFN /etc/nut/upssched.lock
> AT ONBATT myups1 EXECUTE onbatt
> AT LOWBATT myups1 EXECUTE lowbatt
>
> -----
> upssched-cmd:
> $ cat /etc/nut/upssched-cmd
> #!/bin/sh
> #
> # This script should be called by upssched via the CMDSCRIPT directive.
> #
> # Here is a quick example to show how to handle a bunch of possible
> # timer names with the help of the case structure.
> #
> # This script may be replaced with another program without harm.
> #
> # The first argument passed to your CMDSCRIPT is the name of the timer
> # from your AT lines.
> OPTION="$1"
> SCRIPT="$0"
>
> logger -t $SCRIPT "Script called with arg $OPTION"
>
> case $OPTION in
> lowbatt)
> logger -t $SCRIPT "UPS Low Battery: Begin shutting down clients"
> /root/bin/remote-shutdown-nas
> sleep 1
> /root/bin/remote-shutdown-win 192.168.123.2
> sleep 1
> /root/bin/remote-shutdown-win 192.168.123.3
> sleep 20
> ;;
> onbatt)
> logger -t $SCRIPT "UPS on battery"
> ;;
> upsgone)
> logger -t $SCRIPT "The UPS has been gone for awhile"
> ;;
> *)
> logger -t $SCRIPT "Unrecognized arg: $OPTION"
> ;;
> esac
>
> exit 0
>
> UPS communications are working:
> $ upsc myups1
> Init SSL without certificate database
> battery.charge: 100
> battery.charge.low: 80
> battery.charge.warning: 90
> battery.mfr.date: CPS
> battery.runtime: 1350
> battery.runtime.low: 900
> battery.type: PbAcid
> battery.voltage: 24.0
> battery.voltage.nominal: 24
> device.mfr: CPS
> device.model: CST135XLU
> device.serial: CR7GT2000910
> device.type: ups
> driver.flag.ignorelb: enabled
> driver.name: usbhid-ups
> driver.parameter.pollfreq: 30
> driver.parameter.pollinterval: 10
> driver.parameter.port: auto
> driver.parameter.synchronous: no
> driver.parameter.vendorid: 0764
> driver.version: 2.7.4
> driver.version.data: CyberPower HID 0.4
> driver.version.internal: 0.41
> input.voltage: 119.0
> input.voltage.nominal: 120
> output.voltage: 136.0
> ups.beeper.status: enabled
> ups.delay.shutdown: 20
> ups.delay.start: 30
> ups.load: 26
> ups.mfr: CPS
> ups.model: CST135XLU
> ups.productid: 0501
> ups.realpower.nominal: 810
> ups.serial: CR7GT2000910
> ups.status: OL
> ups.test.result: No test initiated
> ups.timer.shutdown: -60
> ups.timer.start: -60
> ups.vendorid: 0764
>
> Show file access:
> $ ll /etc/nut/
> total 53,248
> -rw-r----- 1 root nut 1,573 Mar 29 16:00 nut.conf
> -rw-r----- 1 root nut 4,892 Mar 29 15:47 ups.conf
> -rw-r----- 1 root nut 4,644 Dec 7 2017 upsd.conf
> -rw-r----- 1 root nut 2,234 Mar 28 14:55 upsd.users
> -rw-r----- 1 root nut 15,352 Mar 29 21:32 upsmon.conf
> -rw-r----- 1 root nut 4,099 Mar 30 08:45 upssched.conf
> -rwxr-x--- 1 root nut 986 Mar 30 14:58 upssched-cmd*
>
> Verify nut user can write to the dir:
> $ sudo --user nut touch /etc/nut/test
> $ ll /etc/nut/
> total 53,248
> -rw-r----- 1 root nut 1,573 Mar 29 16:00 nut.conf
> -rw-r--r-- 1 nut nut 0 Mar 30 15:49 test
> -rw-r----- 1 root nut 4,892 Mar 29 15:47 ups.conf
> -rw-r----- 1 root nut 4,644 Dec 7 2017 upsd.conf
> -rw-r----- 1 root nut 2,234 Mar 28 14:55 upsd.users
> -rw-r----- 1 root nut 15,352 Mar 29 21:32 upsmon.conf
> -rw-r----- 1 root nut 4,099 Mar 30 08:45 upssched.conf
> -rwxr-x--- 1 root nut 986 Mar 30 14:58 upssched-cmd*
>
> Verify shell script executes as nut user:
> $ date; sudo --user nut /etc/nut/upssched-cmd dude
> Sat 30 Mar 2019 03:50:56 PM PDT
> $ grep upssched /var/log/syslog | tail -2
> Mar 30 15:50:56 rockenfield /etc/nut/upssched-cmd: Script called with
> arg dude
> Mar 30 15:50:56 rockenfield /etc/nut/upssched-cmd: Unrecognized arg: dude
>
> Any help is greatly appreciated. Thanks a lot!
>
> -MikeD
>
> _______________________________________________
> Nut-upsuser mailing list
> Nut-upsuser at alioth-lists.debian.net
> https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser
>
>
>
> _______________________________________________
> Nut-upsuser mailing list
> Nut-upsuser at alioth-lists.debian.net
> https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser
>
More information about the Nut-upsuser
mailing list