blob: b4b414d917d704254b82171d1a21c570d14999b3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
$NetBSD: patch-ad,v 1.4 2006/11/15 21:46:25 bouyer Exp $
--- /dev/null 2006-11-15 17:26:11.000000000 +0100
+++ platforms/netbsd/apccontrol.in 2006-11-15 17:42:37.000000000 +0100
@@ -0,0 +1,147 @@
+#!@SCRIPTSHELL@
+#
+# Copyright (C) 1999-2002 Riccardo Facchetti <riccardo@master.oasi.gpa.it>
+#
+# 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 "Communciations with UPS restored." | wall
+ /usr/bin/logger -p user.info -t apccontrol "Communciations 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.\n"
+ ;;
+ 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.\n"
+ ;;
+ 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.\n"
+ ;;
+ 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.\n"
+ ;;
+ 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.info -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\nChange 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
|