bkpupsd - Simple UPS daemon for APC BK-Pro series
The bkpupsd program is a Simple Uninterruptible Power Source (UPS) daemon
to control APC Back-UPS Pro. series. When the power fails and goes out, the
UPS daemon (upsd) shutdown the system cleanly.
The device is a serial port name connected to UPS. e.g.
/dev/cuaa0 or /dev/cuaa1, as a fully qualified device node
under /dev. If Omitted, the device is assumed to be /dev/cuaa1
by default.
The bkpupsd is designed to control UPS in dumb mode.
Current specifications are follows:
- UPS
- When the power goes out, the UPS switches power source to battery and
signals the power went out by raising the serial port control line
RNG. If battery power is also exhausted or failed, the UPS signals
the battery low by lowering CTS. When DTR is high and
RNG goes high, the UPS induce itself to shutdown mode. In the
shutdown mode the UPS stops supplying power to save the battery from
overload and waits the recovery of the power. (After the power returns,
the system will restart automatically.)
- bkpupsd
- The upsd monitors the serial port, keeps DTR raised and RTS
lowered. When the upsd sees the RNG goes high, runs the
bkpups.failed (powerfail warning shell-script) and reports
powerfailure to syslog. If the powerfailure continued for 5
minutes, the upsd runs the bkpups.shudown (shutdown shell-script) ,
reports to syslog and makes the UPS to sleep by raising RTS.
The power recovered within 5 minutes, the upsd runs the
bkpups.restored (shell-script for power recovery) and continues to
monitor the serial port for another powerfilure. In case the batter low is
observed, the upsd runs the bkpups.battlow (emergency shutdown
shell-script) immediately, reports to syslog and makes the UPS to
sleep.
- /usr/local/libexec/bkpupsd/bkpups.failed
- Powerfailure warning Shell-script: A shell-script to inform users the
power goes out and the system will be down soon. (Warning only)
- /usr/local/libexec/bkpupsd/bkpups.shutdown
- Shutdown Shell-script: A shell-script to shutdown the system cleanly.
- /usr/local/libexec/bkpupsd/bkpups.restored
- Power recovery Shell-script: A shell-script to inform users the power has
been restored and system shutdown was canceled.
- /usr/local/libexec/bkpupsd/bkpups.battlow
- Emergency shutdown Shell-script: A shell-script to excute emergency halt
for battery power failing.
- /usr/local/sbin/bkpupsd
- The UPS is connected to the serial port2 (COM2:) and default value
/dev/cuaa1 is used.
- /usr/local/sbin/bkpupsd /dev/cuaa0
- The UPS port is specified to be the serial port1 (COM1:) /dev/cuaa0
using command line argument.
The interface cable must be compatible with manufacturer's interface kits. The
shell-scripts can be modified ajusting your system. The recommanded file
permissions for these scripts are "chmod root.wheel 700"(because
anyone who can run these scripts also get the privilage of shutdonw the
system). bkpupsd requires to be run in root privilage to execute the
shell-scripts. The bkpupsd will be replaced with FreeBSD standard Alexis
Yushin's upsd which is under development.
If the power recover after the shutdown script run, the system shutdown will not
be canceled, auto-restart may not performed and the system may be halted until
restart is invoked using reset switch.
Yoshifumi Watanabe <mwatts@edu1.tokyo-med.ac.jp>
The bkpupsd appeared after FreeBSD 2.2.1R.