1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-04 01:48:54 +00:00
freebsd-ports/sysutils/mgeupsd/files/powerhandler

37 lines
1009 B
Bash

#!/bin/sh
PATH=${PATH}:/sbin:/usr/sbin:/usr/local/sbin;export PATH
STATUS=`cat ${1}`
L="logger -i -t powerhandler"
${L} "Status message received: ${STATUS}"
if [ "X${STATUS}" = "XFAIL" ]
then
${L} "Power loss detected, initiating shutdown"
# we are shutting down... give users some warning
shutdown -h +5 "POWER FAILURE DETECTED... initiating emergency shutdown... SAVE YOUR WORK NOW AND LOGOFF!!!"
elif [ "X${STATUS}" = "XLOWBATT" ]
then
${L} "Battery is critical, initiating IMMEDIATE shutdown"
# battery is low.. shut down NOW!
# first nix any shutdown processes
killall shutdown
shutdown -h now "BATTERY IS LOW... SHUTTING DOWN **IMMEDIATELY**..."
elif [ "X${STATUS}" = "XOK" ]
then
${L} "Power has been restored, canceling shutdown"
# everything's ok... cancel the shutdown
killall shutdown
rm -f /var/run/nologin
wall << _EOF_
System power has been restored.
The shutdown procedure has been canceled.
_EOF_
else
# unknown state... help!
${L} "this shouldn't be happening!"
exit 1
fi