[Nut-upsuser] How to shutdown macOS / mac OSX from Network UPS Tools client - NUT

Joe Gervasio joe at gervasio.co.uk
Sat Jun 8 19:08:03 BST 2019


Hi,

I’ve posted my question on Superuser.com but not had any replies in 2 weeks, so I guess no-one there knows anything about NUT.

https://superuser.com/questions/1441153/how-to-shutdown-macos-mac-osx-from-network-ups-tools-client-nut <https://superuser.com/questions/1441153/how-to-shutdown-macos-mac-osx-from-network-ups-tools-client-nut>

I’m looking for help in shutting down my iMac on detecting a power failure while running from a UPS.

My setup is an APC SMT750i UPS, powering two Synology NASs, an iMac, plus the network kit (router, switch etc.). This is all fine.  (Synology runs a variant of Linux plus NUT).  I have installed NUT (v 2.6.5) on the iMac (High Sierra 10.13.6) using MacPorts. One NAS is connected directly to the UPS via USB and acts as the ‘master’ in the NUT network, the other NAS and the iMac are ‘slaves’.

On power failure, the master detects the state of the UPS and broadcasts it to the slaves, which both receive it OK. The NASs both go into ‘safe mode’ correctly as they are configured to do. The iMac receives the state change OK and repeatedly alerts the logged in user, but does NOT in fact shut down, as I want and believe I have configured it to do.

I have followed all the advice I can find online, especially at:

https://networkupstools.org/ <https://networkupstools.org/>
https://superuser.com/questions/1228972/how-to-automatically-launch-nut-client-at-boot-on-macos <https://superuser.com/questions/1228972/how-to-automatically-launch-nut-client-at-boot-on-macos>
https://diktiosolutions.eu/en/synology/synology-ups-nut-en/ <https://diktiosolutions.eu/en/synology/synology-ups-nut-en/>
What am I doing wrong?

Mac NUT config files:

etc/upsmon.conf

RUN_AS_USER root
MONITOR ups at xxx.xxx.xxx.xxx 1 monuser ****** slave
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -u -h +1"
NOTIFYCMD /opt/local/sbin/upssched
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
NOTIFYFLAG ONLINE   EXEC+SYSLOG+WALL
NOTIFYFLAG ONBATT   EXEC+SYSLOG+WALL
NOTIFYFLAG LOWBATT  EXEC+SYSLOG+WALL
NOTIFYFLAG FSD      EXEC+SYSLOG+WALL
NOTIFYFLAG COMMOK   EXEC+SYSLOG
NOTIFYFLAG COMMBAD  EXEC+SYSLOG
NOTIFYFLAG SHUTDOWN EXEC+SYSLOG+WALL
NOTIFYFLAG REPLBATT EXEC+SYSLOG+WALL
NOTIFYFLAG NOCOMM   EXEC+SYSLOG+WALL
NOTIFYFLAG NOPARENT EXEC+SYSLOG+WALL
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5
etc/upssched.conf

CMDSCRIPT /opt/local/bin/upssched-cmd
PIPEFN /opt/local/var/db/ups/upssched/upssched.pipe
LOCKFN /opt/local/var/db/ups/upssched/upssched.lock
AT ONBATT  ups at xxx.xxx.xxx.xxx EXECUTE      on-battery
AT ONLINE  ups at xxx.xxx.xxx.xxx EXECUTE      ups-back-on-line
AT COMMBAD ups at xxx.xxx.xxx.xxx START-TIMER  upsgone 75
AT COMMOK  ups at xxx.xxx.xxx.xxx CANCEL-TIMER upsgone
bin/upssched-cmd

#! /bin/sh

case $1 in
    upsgone)
        logger -t upssched-cmd "Lost communication with UPS"
        /usr/bin/osascript -e 'tell app (path to frontmost application as text) to display dialog "Lost contact with UPS server" buttons {"OK"} default button 1 with icon note'
        ;;
    on-battery)
        logger -t upssched-cmd "UPS is running on battery"
        /usr/bin/osascript -e 'tell app "System Events"                         to display dialog "Power failure. Save your work" buttons {"OK"} default button 1'
        ;;
    ups-back-on-line)
        logger -t upssched-cmd "UPS is running on utility power"
        /usr/bin/osascript -e 'tell app (path to frontmost application as text) to display dialog "Power restored to UPS" giving up after 600 buttons {"OK"} default button 1 with icon note'
        ;;
    *)
        logger -t upssched-cmd "Unrecognized command: $1"
        /usr/bin/osascript -e "tell app (path to frontmost application as text) to display dialog \"upssched-cmd: unsupported command $1\" buttons {\"OK\"} default button 1 with icon caution"
        ;;
esac

iMac$ sudo /opt/local/sbin/upsmon -DDD
Network UPS Tools upsmon 2.6.5-Unversioned directory
kill: No such process
   0.000000	UPS: ups at xxx.xxx.xxx.xxx (slave) (power value 1)
   0.000319	Using power down flag file /etc/killpower
   0.000603	debug level is '3'
   0.004081	Trying to connect to UPS [ups at 192.168.86.242]
   0.006152	Logged into UPS ups at xxx.xxx.xxx.xxx 
   0.006166	pollups: ups at xxx.xxx.xxx.xxx 
   0.006189	get_var: ups at xxx.xxx.xxx.xxx  / status
   0.006566	parse_status: [OL]
   0.006590	parsing: [OL]
   0.006596	ups_on_line: ups at xxx.xxx.xxx.xxx  (first time)
   0.006603	Current power value: 1
   0.006608	Minimum power value: 1
   5.007706	pollups: ups at xxx.xxx.xxx.xxx 
   5.007759	get_var: ups at xxx.xxx.xxx.xxx  / status
   5.008277	parse_status: [OL]
   5.008296	parsing: [OL]
   5.008305	Current power value: 1
   5.008310	Minimum power value: 1
       :
       :

There’s nothing NUT/UPS related in the /var/logs AFAICS
 
Thanks for any help or advice

~Joe



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/nut-upsuser/attachments/20190608/c3164fb7/attachment.html>


More information about the Nut-upsuser mailing list