From b92563b2c1156f5ba235320d5e0c568de2ef8a85 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 8 Oct 2019 20:28:23 +0200 Subject: [PATCH] committing changes in /etc made by "apt-get install apcupsd" Package changes: +apcupsd 3.14.14-2 amd64 +apcupsd-doc 3.14.14-2 all --- .etckeeper | 14 + apcupsd/apccontrol | 136 +++++++ apcupsd/apcupsd.conf | 343 ++++++++++++++++++ apcupsd/changeme | 17 + apcupsd/commfailure | 15 + apcupsd/commok | 17 + apcupsd/hosts.conf | 19 + apcupsd/killpower | 23 ++ apcupsd/multimon.conf | 63 ++++ apcupsd/offbattery | 17 + apcupsd/onbattery | 17 + apcupsd/ups-monitor | 42 +++ default/apcupsd | 3 + init.d/apcupsd | 81 +++++ init.d/ups-monitor | 1 + rc0.d/K01apcupsd | 1 + rc1.d/K01apcupsd | 1 + rc2.d/S03apcupsd | 1 + rc3.d/S03apcupsd | 1 + rc4.d/S03apcupsd | 1 + rc5.d/S03apcupsd | 1 + rc6.d/K01apcupsd | 1 + .../multi-user.target.wants/apcupsd.service | 1 + 23 files changed, 816 insertions(+) create mode 100755 apcupsd/apccontrol create mode 100644 apcupsd/apcupsd.conf create mode 100755 apcupsd/changeme create mode 100755 apcupsd/commfailure create mode 100755 apcupsd/commok create mode 100644 apcupsd/hosts.conf create mode 100755 apcupsd/killpower create mode 100644 apcupsd/multimon.conf create mode 100755 apcupsd/offbattery create mode 100755 apcupsd/onbattery create mode 100755 apcupsd/ups-monitor create mode 100644 default/apcupsd create mode 100755 init.d/apcupsd create mode 120000 init.d/ups-monitor create mode 120000 rc0.d/K01apcupsd create mode 120000 rc1.d/K01apcupsd create mode 120000 rc2.d/S03apcupsd create mode 120000 rc3.d/S03apcupsd create mode 120000 rc4.d/S03apcupsd create mode 120000 rc5.d/S03apcupsd create mode 120000 rc6.d/K01apcupsd create mode 120000 systemd/system/multi-user.target.wants/apcupsd.service diff --git a/.etckeeper b/.etckeeper index 498388c..28989d0 100755 --- a/.etckeeper +++ b/.etckeeper @@ -318,6 +318,18 @@ maybe chmod 0644 'apache2/conf-available/javascript-common.conf' maybe chmod 0755 'apache2/mods-available' maybe chmod 0644 'apache2/mods-available/dnssd.conf' maybe chmod 0644 'apache2/mods-available/dnssd.load' +maybe chmod 0755 'apcupsd' +maybe chmod 0755 'apcupsd/apccontrol' +maybe chmod 0644 'apcupsd/apcupsd.conf' +maybe chmod 0755 'apcupsd/changeme' +maybe chmod 0755 'apcupsd/commfailure' +maybe chmod 0755 'apcupsd/commok' +maybe chmod 0644 'apcupsd/hosts.conf' +maybe chmod 0755 'apcupsd/killpower' +maybe chmod 0644 'apcupsd/multimon.conf' +maybe chmod 0755 'apcupsd/offbattery' +maybe chmod 0755 'apcupsd/onbattery' +maybe chmod 0755 'apcupsd/ups-monitor' maybe chmod 0644 'apg.conf' maybe chmod 0755 'apm' maybe chmod 0755 'apm/event.d' @@ -1329,6 +1341,7 @@ maybe chmod 0644 'default/acpid' maybe chmod 0644 'default/alsa' maybe chmod 0644 'default/amd64-microcode' maybe chmod 0644 'default/anacron' +maybe chmod 0644 'default/apcupsd' maybe chmod 0644 'default/apport' maybe chmod 0644 'default/avahi-daemon' maybe chmod 0644 'default/batmand' @@ -1748,6 +1761,7 @@ maybe chmod 0755 'init.d/acct' maybe chmod 0755 'init.d/acpid' maybe chmod 0755 'init.d/alsa-utils' maybe chmod 0755 'init.d/anacron' +maybe chmod 0755 'init.d/apcupsd' maybe chmod 0755 'init.d/apparmor' maybe chmod 0755 'init.d/apport' maybe chmod 0755 'init.d/avahi-daemon' diff --git a/apcupsd/apccontrol b/apcupsd/apccontrol new file mode 100755 index 0000000..a5dee54 --- /dev/null +++ b/apcupsd/apccontrol @@ -0,0 +1,136 @@ +#!/bin/sh +# +# Copyright (C) 1999-2002 Riccardo Facchetti +# +# platforms/apccontrol. Generated from apccontrol.in by configure. +# +# Note, this is a generic file that can be used by most +# systems. If a particular system needs to have something +# special, start with this file, and put a copy in the +# platform subdirectory. +# + +# +# These variables are needed for set up the autoconf other variables. +# +prefix=/usr +exec_prefix=${prefix} + +APCPID=/var/run/apcupsd.pid +APCUPSD=/sbin/apcupsd +SHUTDOWN=/sbin/shutdown +SCRIPTSHELL=/bin/sh +SCRIPTDIR=/etc/apcupsd +WALL=wall + +export SYSADMIN=root +export APCUPSD_MAIL="mail" +if [ -f $SCRIPTDIR/config ]; then . $SCRIPTDIR/config ; fi + +# +# Concatenate all output from this script to the events file +# Note, the following kills the script in a power fail situation +# where the disks are mounted read-only. +# exec >>/var/log/apcupsd.events 2>&1 + +# +# 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) + echo "Apccontrol doing: ${APCUPSD} --killpower on UPS ${2}" | (${WALL} 2>/dev/null || cat) + sleep 10 + ${APCUPSD} --killpower + echo "Apccontrol has done: ${APCUPSD} --killpower on UPS ${2}" | (${WALL} 2>/dev/null || cat) + ;; + commfailure) + echo "Warning communications lost with UPS ${2}" | ${WALL} + ;; + commok) + echo "Communications restored with UPS ${2}" | ${WALL} + ;; +# +# powerout, onbattery, offbattery, mainsback events occur +# in that order. +# + powerout) + ;; + onbattery) + echo "Power failure on UPS ${2}. Running on batteries." | ${WALL} + ;; + offbattery) + echo "Power has returned on UPS ${2}..." | ${WALL} + ;; + mainsback) + if [ -f /etc/apcupsd/powerfail ] ; then + printf "Continuing with shutdown." | ${WALL} + fi + ;; + failing) + echo "Battery power exhausted on UPS ${2}. Doing shutdown." | ${WALL} + ;; + timeout) + echo "Battery time limit exceeded on UPS ${2}. Doing shutdown." | ${WALL} + ;; + loadlimit) + echo "Remaining battery charge below limit on UPS ${2}. Doing shutdown." | ${WALL} + ;; + runlimit) + echo "Remaining battery runtime below limit on UPS ${2}. Doing shutdown." | ${WALL} + ;; + doreboot) + echo "UPS ${2} initiating Reboot Sequence" | ${WALL} + ${SHUTDOWN} -r now "apcupsd UPS ${2} initiated reboot" + ;; + doshutdown) + echo "UPS ${2} initiated Shutdown Sequence" | ${WALL} + ${SHUTDOWN} -h now "apcupsd UPS ${2} initiated shutdown" + ;; + annoyme) + echo "Power problems with UPS ${2}. Please logoff." | ${WALL} + ;; + emergency) + echo "Emergency Shutdown. Possible battery failure on UPS ${2}." | ${WALL} + ;; + changeme) + echo "Emergency! Batteries have failed on UPS ${2}. Change them NOW" | ${WALL} + ;; + remotedown) + echo "Remote Shutdown. Beginning Shutdown Sequence." | ${WALL} + ;; + 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 diff --git a/apcupsd/apcupsd.conf b/apcupsd/apcupsd.conf new file mode 100644 index 0000000..76861e0 --- /dev/null +++ b/apcupsd/apcupsd.conf @@ -0,0 +1,343 @@ +## apcupsd.conf v1.1 ## +# +# "apcupsd" POSIX config file + +# +# Note that the apcupsd daemon must be restarted in order for changes to +# this configuration file to become active. +# + +# +# ========= General configuration parameters ============ +# + +# UPSNAME xxx +# Use this to give your UPS a name in log files and such. This +# is particulary useful if you have multiple UPSes. This does not +# set the EEPROM. It should be 8 characters or less. +#UPSNAME + +# UPSCABLE +# Defines the type of cable connecting the UPS to your computer. +# +# Possible generic choices for are: +# simple, smart, ether, usb +# +# Or a specific cable model number may be used: +# 940-0119A, 940-0127A, 940-0128A, 940-0020B, +# 940-0020C, 940-0023A, 940-0024B, 940-0024C, +# 940-1524C, 940-0024G, 940-0095A, 940-0095B, +# 940-0095C, 940-0625A, M-04-02-2000 +# +UPSCABLE usb + +# To get apcupsd to work, in addition to defining the cable +# above, you must also define a UPSTYPE, which corresponds to +# the type of UPS you have (see the Description for more details). +# You must also specify a DEVICE, sometimes referred to as a port. +# For USB UPSes, please leave the DEVICE directive blank. For +# other UPS types, you must specify an appropriate port or address. +# +# UPSTYPE DEVICE Description +# apcsmart /dev/tty** Newer serial character device, appropriate for +# SmartUPS models using a serial cable (not USB). +# +# usb Most new UPSes are USB. A blank DEVICE +# setting enables autodetection, which is +# the best choice for most installations. +# +# net hostname:port Network link to a master apcupsd through apcupsd's +# Network Information Server. This is used if the +# UPS powering your computer is connected to a +# different computer for monitoring. +# +# snmp hostname:port:vendor:community +# SNMP network link to an SNMP-enabled UPS device. +# Hostname is the ip address or hostname of the UPS +# on the network. Vendor can be can be "APC" or +# "APC_NOTRAP". "APC_NOTRAP" will disable SNMP trap +# catching; you usually want "APC". Port is usually +# 161. Community is usually "private". +# +# netsnmp hostname:port:vendor:community +# OBSOLETE +# Same as SNMP above but requires use of the +# net-snmp library. Unless you have a specific need +# for this old driver, you should use 'snmp' instead. +# +# dumb /dev/tty** Old serial character device for use with +# simple-signaling UPSes. +# +# pcnet ipaddr:username:passphrase:port +# PowerChute Network Shutdown protocol which can be +# used as an alternative to SNMP with the AP9617 +# family of smart slot cards. ipaddr is the IP +# address of the UPS management card. username and +# passphrase are the credentials for which the card +# has been configured. port is the port number on +# which to listen for messages from the UPS, normally +# 3052. If this parameter is empty or missing, the +# default of 3052 will be used. +# +# modbus /dev/tty** Serial device for use with newest SmartUPS models +# supporting the MODBUS protocol. +# modbus Leave the DEVICE setting blank for MODBUS over USB +# or set to the serial number of the UPS to ensure +# that apcupsd binds to that particular unit +# (helpful if you have more than one USB UPS). +# +UPSTYPE usb +DEVICE /dev/ttyS0 + +# POLLTIME +# Interval (in seconds) at which apcupsd polls the UPS for status. This +# setting applies both to directly-attached UPSes (UPSTYPE apcsmart, usb, +# dumb) and networked UPSes (UPSTYPE net, snmp). Lowering this setting +# will improve apcupsd's responsiveness to certain events at the cost of +# higher CPU utilization. The default of 60 is appropriate for most +# situations. +#POLLTIME 60 + +# LOCKFILE +# Path for device lock file for UPSes connected via USB or +# serial port. This is the directory into which the lock file +# will be written. The directory must already exist; apcupsd will not create +# it. The actual name of the lock file is computed from DEVICE. +# Not used on Win32. +LOCKFILE /var/lock + +# SCRIPTDIR +# Directory in which apccontrol and event scripts are located. +SCRIPTDIR /etc/apcupsd + +# PWRFAILDIR +# Directory in which to write the powerfail flag file. This file +# is created when apcupsd initiates a system shutdown and is +# checked in the OS halt scripts to determine if a killpower +# (turning off UPS output power) is required. +PWRFAILDIR /etc/apcupsd + +# NOLOGINDIR +# Directory in which to write the nologin file. The existence +# of this flag file tells the OS to disallow new logins. +NOLOGINDIR /etc + + +# +# ======== Configuration parameters used during power failures ========== +# + +# The ONBATTERYDELAY is the time in seconds from when a power failure +# is detected until we react to it with an onbattery event. +# +# This means that, apccontrol will be called with the powerout argument +# immediately when a power failure is detected. However, the +# onbattery argument is passed to apccontrol only after the +# ONBATTERYDELAY time. If you don't want to be annoyed by short +# powerfailures, make sure that apccontrol powerout does nothing +# i.e. comment out the wall. +ONBATTERYDELAY 6 + +# +# Note: BATTERYLEVEL, MINUTES, and TIMEOUT work in conjunction, so +# the first that occurs will cause the initation of a shutdown. +# + +# If during a power failure, the remaining battery percentage +# (as reported by the UPS) is below or equal to BATTERYLEVEL, +# apcupsd will initiate a system shutdown. +BATTERYLEVEL 5 + +# If during a power failure, the remaining runtime in minutes +# (as calculated internally by the UPS) is below or equal to MINUTES, +# apcupsd, will initiate a system shutdown. +MINUTES 3 + +# If during a power failure, the UPS has run on batteries for TIMEOUT +# many seconds or longer, apcupsd will initiate a system shutdown. +# A value of 0 disables this timer. +# +# Note, if you have a Smart UPS, you will most likely want to disable +# this timer by setting it to zero. That way, you UPS will continue +# on batteries until either the % charge remaing drops to or below BATTERYLEVEL, +# or the remaining battery runtime drops to or below MINUTES. Of course, +# if you are testing, setting this to 60 causes a quick system shutdown +# if you pull the power plug. +# If you have an older dumb UPS, you will want to set this to less than +# the time you know you can run on batteries. +TIMEOUT 0 + +# Time in seconds between annoying users to signoff prior to +# system shutdown. 0 disables. +ANNOY 300 + +# Initial delay after power failure before warning users to get +# off the system. +ANNOYDELAY 60 + +# The condition which determines when users are prevented from +# logging in during a power failure. +# NOLOGON [ disable | timeout | percent | minutes | always ] +NOLOGON disable + +# If KILLDELAY is non-zero, apcupsd will continue running after a +# shutdown has been requested, and after the specified time in +# seconds attempt to kill the power. This is for use on systems +# where apcupsd cannot regain control after a shutdown. +# KILLDELAY 0 disables +KILLDELAY 0 + +# +# ==== Configuration statements for Network Information Server ==== +# + +# NETSERVER [ on | off ] on enables, off disables the network +# information server. If netstatus is on, a network information +# server process will be started for serving the STATUS and +# EVENT data over the network (used by CGI programs). +NETSERVER on + +# NISIP +# IP address on which NIS server will listen for incoming connections. +# This is useful if your server is multi-homed (has more than one +# network interface and IP address). Default value is 0.0.0.0 which +# means any incoming request will be serviced. Alternatively, you can +# configure this setting to any specific IP address of your server and +# NIS will listen for connections only on that interface. Use the +# loopback address (127.0.0.1) to accept connections only from the +# local machine. +NISIP 127.0.0.1 + +# NISPORT default is 3551 as registered with the IANA +# port to use for sending STATUS and EVENTS data over the network. +# It is not used unless NETSERVER is on. If you change this port, +# you will need to change the corresponding value in the cgi directory +# and rebuild the cgi programs. +NISPORT 3551 + +# If you want the last few EVENTS to be available over the network +# by the network information server, you must define an EVENTSFILE. +EVENTSFILE /var/log/apcupsd.events + +# EVENTSFILEMAX +# By default, the size of the EVENTSFILE will be not be allowed to exceed +# 10 kilobytes. When the file grows beyond this limit, older EVENTS will +# be removed from the beginning of the file (first in first out). The +# parameter EVENTSFILEMAX can be set to a different kilobyte value, or set +# to zero to allow the EVENTSFILE to grow without limit. +EVENTSFILEMAX 10 + +# +# ========== Configuration statements used if sharing ============= +# a UPS with more than one machine + +# +# Remaining items are for ShareUPS (APC expansion card) ONLY +# + +# UPSCLASS [ standalone | shareslave | sharemaster ] +# Normally standalone unless you share an UPS using an APC ShareUPS +# card. +UPSCLASS standalone + +# UPSMODE [ disable | share ] +# Normally disable unless you share an UPS using an APC ShareUPS card. +UPSMODE disable + +# +# ===== Configuration statements to control apcupsd system logging ======== +# + +# Time interval in seconds between writing the STATUS file; 0 disables +STATTIME 0 + +# Location of STATUS file (written to only if STATTIME is non-zero) +STATFILE /var/log/apcupsd.status + +# LOGSTATS [ on | off ] on enables, off disables +# Note! This generates a lot of output, so if +# you turn this on, be sure that the +# file defined in syslog.conf for LOG_NOTICE is a named pipe. +# You probably do not want this on. +LOGSTATS off + +# Time interval in seconds between writing the DATA records to +# the log file. 0 disables. +DATATIME 0 + +# FACILITY defines the logging facility (class) for logging to syslog. +# If not specified, it defaults to "daemon". This is useful +# if you want to separate the data logged by apcupsd from other +# programs. +#FACILITY DAEMON + +# +# ========== Configuration statements used in updating the UPS EPROM ========= +# + +# +# These statements are used only by apctest when choosing "Set EEPROM with conf +# file values" from the EEPROM menu. THESE STATEMENTS HAVE NO EFFECT ON APCUPSD. +# + +# UPS name, max 8 characters +#UPSNAME UPS_IDEN + +# Battery date - 8 characters +#BATTDATE mm/dd/yy + +# Sensitivity to line voltage quality (H cause faster transfer to batteries) +# SENSITIVITY H M L (default = H) +#SENSITIVITY H + +# UPS delay after power return (seconds) +# WAKEUP 000 060 180 300 (default = 0) +#WAKEUP 60 + +# UPS Grace period after request to power off (seconds) +# SLEEP 020 180 300 600 (default = 20) +#SLEEP 180 + +# Low line voltage causing transfer to batteries +# The permitted values depend on your model as defined by last letter +# of FIRMWARE or APCMODEL. Some representative values are: +# D 106 103 100 097 +# M 177 172 168 182 +# A 092 090 088 086 +# I 208 204 200 196 (default = 0 => not valid) +#LOTRANSFER 208 + +# High line voltage causing transfer to batteries +# The permitted values depend on your model as defined by last letter +# of FIRMWARE or APCMODEL. Some representative values are: +# D 127 130 133 136 +# M 229 234 239 224 +# A 108 110 112 114 +# I 253 257 261 265 (default = 0 => not valid) +#HITRANSFER 253 + +# Battery charge needed to restore power +# RETURNCHARGE 00 15 50 90 (default = 15) +#RETURNCHARGE 15 + +# Alarm delay +# 0 = zero delay after pwr fail, T = power fail + 30 sec, L = low battery, N = never +# BEEPSTATE 0 T L N (default = 0) +#BEEPSTATE T + +# Low battery warning delay in minutes +# LOWBATT 02 05 07 10 (default = 02) +#LOWBATT 2 + +# UPS Output voltage when running on batteries +# The permitted values depend on your model as defined by last letter +# of FIRMWARE or APCMODEL. Some representative values are: +# D 115 +# M 208 +# A 100 +# I 230 240 220 225 (default = 0 => not valid) +#OUTPUTVOLTS 230 + +# Self test interval in hours 336=2 weeks, 168=1 week, ON=at power on +# SELFTEST 336 168 ON OFF (default = 336) +#SELFTEST 336 diff --git a/apcupsd/changeme b/apcupsd/changeme new file mode 100755 index 0000000..4dfd41f --- /dev/null +++ b/apcupsd/changeme @@ -0,0 +1,17 @@ +#!/bin/sh +# +# This shell script if placed in /etc/apcupsd +# will be called by /etc/apcupsd/apccontrol when apcupsd +# detects that the battery should be replaced. +# We send an email message to root to notify him. +# + +HOSTNAME=`hostname` +MSG="$HOSTNAME UPS $1 battery needs changing NOW." +# +( + echo "$MSG" + echo " " + /sbin/apcaccess status +) | $APCUPSD_MAIL -s "$MSG" $SYSADMIN +exit 0 diff --git a/apcupsd/commfailure b/apcupsd/commfailure new file mode 100755 index 0000000..d207995 --- /dev/null +++ b/apcupsd/commfailure @@ -0,0 +1,15 @@ +#!/bin/sh +# +# This shell script if placed in /etc/apcupsd +# will be called by /etc/apcupsd/apccontrol when apcupsd +# loses contact with the UPS (i.e. the serial connection is not responding). +# We send an email message to root to notify him. +# + +HOSTNAME=`hostname` +MSG="$HOSTNAME Communications with UPS $1 lost" +# +( + echo "$MSG" +) | $APCUPSD_MAIL -s "$MSG" $SYSADMIN +exit 0 diff --git a/apcupsd/commok b/apcupsd/commok new file mode 100755 index 0000000..016214c --- /dev/null +++ b/apcupsd/commok @@ -0,0 +1,17 @@ +#!/bin/sh +# +# This shell script if placed in /etc/apcupsd +# will be called by /etc/apcupsd/apccontrol when apcupsd +# restores contact with the UPS (i.e. the serial connection is restored). +# We send an email message to root to notify him. +# + +HOSTNAME=`hostname` +MSG="$HOSTNAME Communications with UPS $1 restored" +# +( + echo "$MSG" + echo " " + /sbin/apcaccess status +) | $APCUPSD_MAIL -s "$MSG" $SYSADMIN +exit 0 diff --git a/apcupsd/hosts.conf b/apcupsd/hosts.conf new file mode 100644 index 0000000..ecab3c0 --- /dev/null +++ b/apcupsd/hosts.conf @@ -0,0 +1,19 @@ +# Network UPS Tools - hosts.conf +# +# This file does double duty - it lists the systems that multimon will +# monitor, and also specifies the systems that upsstats is allowed to +# watch. It keeps people from feeding random addresses to upsstats, +# among other things. upsimage also uses this file to know who it +# may speak to. upsfstats too. +# +# Usage: list systems running upsd that you want to monitor +# +# MONITOR
"" +# +# Please note, MONITOR must start in column 1 (no spaces permitted) +# +# Example: +# MONITOR 10.64.1.1 "Finance department" +# MONITOR 10.78.1.1 "Sierra High School data room #1" +# +MONITOR 127.0.0.1 "Local Host" diff --git a/apcupsd/killpower b/apcupsd/killpower new file mode 100755 index 0000000..7e182b9 --- /dev/null +++ b/apcupsd/killpower @@ -0,0 +1,23 @@ +#!/bin/sh +# +# This shell script if placed in /etc/apcupsd +# will be called by /etc/apcupsd/apccontrol before +# apcupsd kills the power in the UPS. You probably +# need to edit this to mount read-only /usr and /var, +# otherwise apcupsd will not run. + +# Choose one of this solution +#mount -n -o ro /usr +#mount -n -o ro /var +# +#mount | awk '/ext2/ { print $3 }' | while read line; do +# mount -n -o ro,remount $line +#done +#mount | awk '/ext3/ { print $3 }' | while read line; do +# mount -n -o ro,remount $line +#done +#mount | awk '/reiserfs/ { print $3 }' | while read line; do +# mount -n -o ro,remount $line +#done + +exit 0 diff --git a/apcupsd/multimon.conf b/apcupsd/multimon.conf new file mode 100644 index 0000000..4cdf9b0 --- /dev/null +++ b/apcupsd/multimon.conf @@ -0,0 +1,63 @@ +# Sample multimon configuration file +# +# This file is not required. Without it, multimon will use the default +# field layout. +# +# Temperature selection +# +# Pick "TEMPC" for Celsius or "TEMPF" for Fahrenheit. This will override +# the --enable-celsius setting from the compile. UPSTEMP (below) will +# use this setting by default. + +TEMPC + +# Format: +# FIELD "" "" +# +# is either a word from the UPS protocol like battchg (see the +# table in src/cgi/upsfetch.c) or a special word in uppercase. +# +# Special words are: +# MODEL - Show the model name for this system in cyan +# +# STATUS - Parse the status for this system using the appropriate color +# +# UPSTEMP and AMBTEMP use the default scale. This is set to C if you use +# --enable-celsius at compile time *or* if you use "TEMPC" above. +# +# UPSTEMP - Show the UPS temperature in the default scale (suffix ignored) +# AMBTEMP - Show the ambient temperature in the default scale (suffix ignored) +# +# UPSTEMPC - Show the UPS temperature in degrees C (suffix ignored) +# UPSTEMPF - Show the UPS temperature in degrees F (suffix ignored) +# AMBTEMPC - Show the ambient temperature in degrees C (suffix ignored) +# AMBTEMPF - Show the ambient temperature in degrees F (suffix ignored) +# +# They're called "special" since they actually understand the content +# being printed and do other things based on what's in there. +# +# is what you'd like this column to be called on the page. +# Remember that this is HTML, so you can actually embed markup in here. +# This means you can even include images here. You can include quotes +# (and backslashes!) in the string by escaping them with a backslash (\). +# +# is typically something like % or VAC. It's useful if +# you want to convey the units that apply to a value. +# +# Example config + +FIELD SYSTEM "System" "" +FIELD MODEL "Model" "" +FIELD STATUS "Status" "" +FIELD battpct "Battery Chg" "%" +FIELD utility "Utility" "VAC" +FIELD loadpct "UPS Load" "%" +FIELD UPSTEMP "UPS Temp" "" +FIELD runtime "Batt. Run Time" "min." +FIELD DATA "Data" "All data" + +# These are only useful if you have a Smart-UPS model with the Measure-UPS II +# measurement card. No other models presently support these features. +# +# FIELD AMBTEMP "Ambient Temp" "" +# FIELD HUMIDITY "Ambient Humidity" "%" diff --git a/apcupsd/offbattery b/apcupsd/offbattery new file mode 100755 index 0000000..11dd738 --- /dev/null +++ b/apcupsd/offbattery @@ -0,0 +1,17 @@ +#!/bin/sh +# +# This shell script if placed in /etc/apcupsd +# will be called by /etc/apcupsd/apccontrol when the +# UPS goes back on to the mains after a power failure. +# We send an email message to root to notify him. +# + +HOSTNAME=`hostname` +MSG="$HOSTNAME UPS $1 Power has returned" +# +( + echo "$MSG" + echo " " + /sbin/apcaccess status +) | $APCUPSD_MAIL -s "$MSG" $SYSADMIN +exit 0 diff --git a/apcupsd/onbattery b/apcupsd/onbattery new file mode 100755 index 0000000..1789a21 --- /dev/null +++ b/apcupsd/onbattery @@ -0,0 +1,17 @@ +#!/bin/sh +# +# This shell script if placed in /etc/apcupsd +# will be called by /etc/apcupsd/apccontrol when the UPS +# goes on batteries. +# We send an email message to root to notify him. +# + +HOSTNAME=`hostname` +MSG="$HOSTNAME UPS $1 Power Failure !!!" +# +( + echo "$MSG" + echo " " + /sbin/apcaccess status +) | $APCUPSD_MAIL -s "$MSG" $SYSADMIN +exit 0 diff --git a/apcupsd/ups-monitor b/apcupsd/ups-monitor new file mode 100755 index 0000000..3253579 --- /dev/null +++ b/apcupsd/ups-monitor @@ -0,0 +1,42 @@ +#!/bin/sh + +### BEGIN INIT INFO +# Provides: ups-monitor +# Required-Start: +# Required-Stop: +# Should-Start: +# Should-Stop: +# Default-Start: +# Default-Stop: +# Short-Description: Stop ups-monitor +# Description: apcupsd provides UPS power management for APC products. +### END INIT INFO + +# Martin Mitchell +# modifications by Gordon Morehouse April 2001 +# +# Modified to be "non-blocking" by Bjorn Wiberg 2004-10-21 +# Place this script as /etc/init.d/ups-monitor in order for /etc/init.d/halt to find it! + +case "$1" in + poweroff | killpower) + faildir=$(grep -e^PWRFAILDIR /etc/apcupsd/apcupsd.conf) + faildir="${faildir#PWRFAILDIR }" + + if [ -f "${faildir:=/etc/apcupsd}/powerfail" ]; then + echo "" + echo -n "apcupsd: Ordering UPS to kill power... " + /etc/apcupsd/apccontrol killpower + echo "done." + echo "" + echo "Please ensure the UPS has powered off before rebooting." + echo "Otherwise, the UPS may cut the power during the reboot!" + echo "" + fi + ;; + + *) + ;; +esac + +exit 0 diff --git a/default/apcupsd b/default/apcupsd new file mode 100644 index 0000000..d59cea0 --- /dev/null +++ b/default/apcupsd @@ -0,0 +1,3 @@ +# Defaults for apcupsd initscript (unused with systemd as init). +# Set to "yes" to enable startup of apcupsd. +ISCONFIGURED=no diff --git a/init.d/apcupsd b/init.d/apcupsd new file mode 100755 index 0000000..34ee85d --- /dev/null +++ b/init.d/apcupsd @@ -0,0 +1,81 @@ +#!/bin/sh + +### BEGIN INIT INFO +# Provides: apcupsd +# Required-Start: $remote_fs $syslog +# Required-Stop: $remote_fs $syslog +# Should-Start: $local_fs +# Should-Stop: $local_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Starts apcupsd daemon +# Description: apcupsd provides UPS power management for APC products. +### END INIT INFO + +test -f /lib/lsb/init-functions || exit 1 +. /lib/lsb/init-functions + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/sbin/apcupsd +CONFIG=/etc/default/apcupsd +NAME=apcupsd +DESC="UPS power management" +APCACCESS=/sbin/apcaccess + +test -x $DAEMON || exit 0 +test -e $CONFIG || exit 0 + +set -e + +. $CONFIG + +if [ "x$ISCONFIGURED" != "xyes" ] ; +then + echo "Please check your configuration ISCONFIGURED in /etc/default/apcupsd" + exit 0 +fi + + +case "$1" in + start) + echo -n "Starting $DESC: " + + /lib/apcupsd/prestart + + if [ "`pidof apcupsd`" = "" ] + then + start-stop-daemon --start --quiet --exec $DAEMON + echo "$NAME." + else + echo "" + echo "A copy of the daemon is still running. If you just stopped it," + echo "please wait about 5 seconds for it to shut down." + exit 0 + fi + ;; + + stop) + echo -n "Stopping $DESC: " + start-stop-daemon --stop --oknodo --pidfile /var/run/apcupsd.pid || echo "Not Running." + rm -f /var/run/apcupsd.pid + echo "$NAME." + ;; + + restart|force-reload) + $0 stop + sleep 10 + $0 start + ;; + + status) + $APCACCESS status + ;; + + *) + N=/etc/init.d/$NAME + echo "Usage: $N {start|stop|restart|force-reload}" >&2 + exit 1 + ;; +esac + +exit 0 diff --git a/init.d/ups-monitor b/init.d/ups-monitor new file mode 120000 index 0000000..d9d64e0 --- /dev/null +++ b/init.d/ups-monitor @@ -0,0 +1 @@ +../apcupsd/ups-monitor \ No newline at end of file diff --git a/rc0.d/K01apcupsd b/rc0.d/K01apcupsd new file mode 120000 index 0000000..94f456e --- /dev/null +++ b/rc0.d/K01apcupsd @@ -0,0 +1 @@ +../init.d/apcupsd \ No newline at end of file diff --git a/rc1.d/K01apcupsd b/rc1.d/K01apcupsd new file mode 120000 index 0000000..94f456e --- /dev/null +++ b/rc1.d/K01apcupsd @@ -0,0 +1 @@ +../init.d/apcupsd \ No newline at end of file diff --git a/rc2.d/S03apcupsd b/rc2.d/S03apcupsd new file mode 120000 index 0000000..94f456e --- /dev/null +++ b/rc2.d/S03apcupsd @@ -0,0 +1 @@ +../init.d/apcupsd \ No newline at end of file diff --git a/rc3.d/S03apcupsd b/rc3.d/S03apcupsd new file mode 120000 index 0000000..94f456e --- /dev/null +++ b/rc3.d/S03apcupsd @@ -0,0 +1 @@ +../init.d/apcupsd \ No newline at end of file diff --git a/rc4.d/S03apcupsd b/rc4.d/S03apcupsd new file mode 120000 index 0000000..94f456e --- /dev/null +++ b/rc4.d/S03apcupsd @@ -0,0 +1 @@ +../init.d/apcupsd \ No newline at end of file diff --git a/rc5.d/S03apcupsd b/rc5.d/S03apcupsd new file mode 120000 index 0000000..94f456e --- /dev/null +++ b/rc5.d/S03apcupsd @@ -0,0 +1 @@ +../init.d/apcupsd \ No newline at end of file diff --git a/rc6.d/K01apcupsd b/rc6.d/K01apcupsd new file mode 120000 index 0000000..94f456e --- /dev/null +++ b/rc6.d/K01apcupsd @@ -0,0 +1 @@ +../init.d/apcupsd \ No newline at end of file diff --git a/systemd/system/multi-user.target.wants/apcupsd.service b/systemd/system/multi-user.target.wants/apcupsd.service new file mode 120000 index 0000000..506fc49 --- /dev/null +++ b/systemd/system/multi-user.target.wants/apcupsd.service @@ -0,0 +1 @@ +/lib/systemd/system/apcupsd.service \ No newline at end of file -- 2.43.0