diff options
Diffstat (limited to 'sys-apps/apcupsd/files/apccontrol')
-rw-r--r-- | sys-apps/apcupsd/files/apccontrol | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/sys-apps/apcupsd/files/apccontrol b/sys-apps/apcupsd/files/apccontrol new file mode 100644 index 000000000000..050b32f02006 --- /dev/null +++ b/sys-apps/apcupsd/files/apccontrol @@ -0,0 +1,122 @@ +#!/bin/sh +# +# Copyright (C) 1999-2000 Riccardo Facchetti <riccardo@master.oasi.gpa.it> +# +# Generated automatically from apccontrol.sh.in by configure. +# + +# +# These variables are needed for set up the autoconf other variables. +# +prefix=/tmp/portage/apcupsd-3.8.1/image/ +exec_prefix=${prefix} + +APCPID=/var/run/apcupsd.pid +APCUPSD=/usr/sbin/apcupsd +SHUTDOWN=/sbin/shutdown +SCRIPTSHELL=/bin/sh +SCRIPTDIR=/etc/apcupsd + +# +# 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 + ${SCRIPTSHELL} ${SCRIPTDIR}/${1} + # exit code 99 means he does not want us to do default action + if [ $? = 99 ] ; then + exit 0 + fi +fi + +case "$1" in + killpower) + echo "Apccontrol doing: ${APCUPSD} --killpower" + ${APCUPSD} --killpower + ;; + commfailure) + printf "Warning serial port communications with UPS lost." | wall + ;; + commok) + printf "Serial communciations with UPS restored." | wall + ;; + powerout) + printf "Warning power loss detected." | wall + ;; + onbattery) + printf "Power failure. Running on UPS batteries." | wall + ;; + failing) + printf "UPS battery power exhaused. Doing shutdown.\n" | wall + ;; + timeout) + printf "UPS battery runtime limit exceded. Doing shutdown.\n" | wall + ;; + loadlimit) + printf "UPS battery discharge limit reached. Doing shutdown.\n" | wall + ;; + runlimit) + printf "UPS battery runtime percent reached. Doing shutdown.\n" \ + | wall + ;; + doreboot) + printf "Beginning Reboot Sequence" | wall + ${SHUTDOWN} -r now "apcupsd initiated reboot" + ;; + doshutdown) + printf "Beginning Shutdown Sequence" | wall + ${SHUTDOWN} -h now "apcupsd initiated shutdown" + ;; + mainsback) + printf "Power has returned..." | wall + if [ -f /etc/apcupsd/powerfail ] ; then + printf "Attempting to cancel shutdown." | wall + ${SHUTDOWN} -c + fi + ;; + annoyme) + printf "Power problems please logoff." | wall + ;; + emergency) + printf "Emergency Shutdown. Possible UPS battery failure." \ + | wall + ${SHUTDOWN} -h now "apcupsd emergency shutdown" + ;; + changeme) + printf "Emergency! UPS batteries have failed\nChange them NOW" \ + | wall + ;; + 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 /etc/apcupsd/powerfail + rm -f /etc/nologin + sleep 5 + `${APCUPSD}` + echo "apcupsd" + ;; + *) 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 |