summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-apps/apcupsd/files/apccontrol')
-rw-r--r--sys-apps/apcupsd/files/apccontrol122
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