On Sun, Aug 18, 2024 at 07:00:52AM -0500, Dale wrote
> Walter Dnes wrote:
> > My current manual hibernation script is...
> >
> > #!/bin/bash
> > sync
> > sudo /usr/sbin/hibernate
> The one thing I wish I could figure out how to set up, once power
> is lost, wait 2 minutes, maybe 5 minutes, then power off even if
> the battery still has lots of power left.
I asked Mr. Google. APCUPSD has an ONBATTERDELAY command that does
something only if the battery is in use (i.e. AC power is off) for at
least a certain specified length of time..
> P. S. Your little script looks like something I'd come up with. Simple
> but works. ;-) LOL
The solution for NUT appears to be to launch a countdown script rather
than do an immediate kill. The examples I saw were exceedingly complex,
designed to handle all sorts of outlier cases. Here's the barebones
simplest I think you can get away with. It launches as soon as
ONBATTERY is detected. It has a main loop that runs up to 60 seconds
(i.e. "sleep 1" x 60). If it falls through the bottom of the loop
(counter = 0), it executes a "hibernate" (or "shutdown" if you prefer).
If if detects battery not in use (i.e. AC power back on) before
60 seconds, it'll exit entirely. ***WARNING*** I HAVE NOT TESTED THIS
CODE. I don't have a machine with a UPS running NUT
###################################################
in /etc/nut/upsmon.conf on client change to this
NOTIFYCMD "/etc/nut/countdown"
NOTIFYFLAG ONBATT EXEC
/etc/nut/countdown looks like so (counter = 60 ==> 60 seconds)
###################################################
#!/bin/bash
counter=60
while [ ${counter} -gt 0 ]
do
output=$(upsc [email protected] ups.status)
if echo "$output" | grep -q "OB"
then
sleep 1
counter--
else
exit
fi
done
/usr/sbin/hibernate
###################################################
NOTES:
* status output may change between versions
* adjust IP address as appropriate for your system
* make sure to mark the script executable
* you may have to set up and invoke sudo for "hibernate"
or "shutdown" if the NUT daemon is not root
--
There are 2 types of people
1) Those who can extrapolate from incomplete data