$NetBSD: patch-ad,v 1.6 2020/09/19 13:50:48 taca Exp $ * apccontrol script. --- platforms/netbsd/apccontrol.in.orig 2012-04-21 20:53:17.000000000 +0000 +++ platforms/netbsd/apccontrol.in @@ -0,0 +1,147 @@ +#!@SCRIPTSHELL@ +# +# Copyright (C) 1999-2002 Riccardo Facchetti +# +# for apcupsd release @VERSION@ (@DATE@) - @DISTNAME@ +# +# @configure_input@ +# + +# +# These variables are needed for set up the autoconf other variables. +# +prefix=@prefix@ +exec_prefix=@exec_prefix@ + +APCPID=@PIDDIR@/apcupsd.pid +APCUPSD=@sbindir@/apcupsd +SHUTDOWN=@SHUTDOWN@ +SCRIPTSHELL=@SCRIPTSHELL@ +SCRIPTDIR=@sysconfdir@ + +# +# This piece is to substitute the default behaviour with your own script, +# perl, or C program. +# You can customize every single command creating an executable file (may be a +# script or a compiled program) and calling it the same as the $1 parameter +# passed by apcupsd to this script. +# +# After executing your script, apccontrol continues with the default action. +# If you do not want apccontrol to continue, exit your script with exit +# code 99. E.g. "exit 99". +# +# WARNING: the apccontrol file will be overwritten every time you update your +# apcupsd, doing `make install'. Your own customized scripts will _not_ be +# overwritten. If you wish to make changes to this file (discouraged), you +# should change apccontrol.sh.in and then rerun the configure process. +# +if [ -f ${SCRIPTDIR}/${1} -a -x ${SCRIPTDIR}/${1} ] +then + ${SCRIPTDIR}/${1} ${2} ${3} ${4} + # exit code 99 means he does not want us to do default action + if [ $? = 99 ] ; then + exit 0 + fi +fi + +case "$1" in + killpower) + printf "UPS now committed to shut down" | wall +# echo "Apccontrol doing: ${APCUPSD} --killpower" +# sleep 10 +# ${APCUPSD} --killpower + ;; + commfailure) + printf "Communications with UPS lost." | wall + /usr/bin/logger -p user.info -t apccontrol "Warning, serial port communications with UPS lost." + ;; + commok) + printf "Communications with UPS restored." | wall + /usr/bin/logger -p user.info -t apccontrol "Communications with UPS restored." + ;; + powerout) + printf "Warning power loss detected." | wall + /usr/bin/logger -p user.info -t apccontrol "Warning, power loss detected." + ;; + onbattery) + printf "Power failure. Running on UPS batteries." | wall + /usr/bin/logger -p user.info -t apccontrol "Power failure. Running on UPS batteries." + ;; + offbattery) + ;; + mainsback) + printf "Power has returned..." | wall + /usr/bin/logger -p user.info -t apccontrol "Power has returned..." + if [ -f @PWRFAILDIR@/powerfail ] ; then + printf "Continuing with shutdown." | wall + /usr/bin/logger -p user.info -t apccontrol "Continuing with shutdown." + fi + ;; + failing) + printf "UPS battery power exhaused. Doing shutdown.\n" | wall + /usr/bin/logger -p user.info -t apccontrol "UPS battery power exhaused. Doing shutdown." + ;; + timeout) + printf "UPS battery runtime limit exceeded. Doing shutdown.\n" | wall + /usr/bin/logger -p user.info -t apccontrol "UPS battery runtime limit exceeded. Doing shutdown." + ;; + loadlimit) + printf "UPS battery discharge limit reached. Doing shutdown.\n" | wall + /usr/bin/logger -p user.info -t apccontrol "UPS battery discharge limit reached. Doing shutdown." + ;; + runlimit) + printf "UPS battery runtime percent reached. Doing shutdown.\n" \ + | wall + /usr/bin/logger -p user.info -t apccontrol "UPS battery runtime percent reached. Doing shutdown." + ;; + doreboot) + printf "Beginning Reboot Sequence" | wall + ${SHUTDOWN} -r now "apcupsd initiated reboot" + ;; + doshutdown) + printf "Beginning Shutdown Sequence" | wall + ${SHUTDOWN} -h now "apcupsd initiated shutdown" + ;; + annoyme) + printf "Power problems, please logoff." | wall + ;; + emergency) + printf "Emergency Shutdown. Possible UPS battery failure." \ + | wall + /usr/bin/logger -p user.crit -t apccontrol "Emergency Shutdown. Possible UPS battery failure." + ${SHUTDOWN} -h now "apcupsd emergency shutdown" + ;; + changeme) + printf "Emergency! UPS batteries have failed\nChange them NOW" \ + | wall + /usr/bin/logger -p user.info -t apccontrol "Emergency! UPS batteries have failed. Change them NOW." + ;; + remotedown) + printf "Remote Shutdown.\nBeginning Shutdown Sequence." | wall + ${SHUTDOWN} -h now "apcupsd remote shutdown" + ;; + restartme) + echo -n "Restarting APCUPSD Power Management: " + THEPID=`cat ${APCPID}` + kill ${THEPID} + rm -f ${APCPID} + rm -f @PWRFAILDIR@/powerfail + rm -f @nologdir@/nologin + sleep 5 + `${APCUPSD} --kill-on-powerfail` + echo "apcupsd" + ;; + startselftest) + ;; + endselftest) + ;; + battdetach) + ;; + battattach) + ;; + *) echo "Usage: ${0##*/} command" + echo " warning: this script is intended to be launched by" + echo " apcupsd and should never be launched by users." + exit 1 + ;; +esac