Powerd is a daemon process that sits in the background and monitors the
state of the DCD line of the serial device. This line is meant to be connected
to a UPS (Uninterruptible Power Supply) so that powerd knows about the
state of the UPS. As soon as powerd senses that the power is failing
(it sees that DCD goes low) it notifies init(8), and init then
executes the powerwait and powerfail entries. If powerd
senses that the power has been restored, it notifies init again and
init will execute the powerokwait entries.
Powerd regularly checks the DSR line to see if it's high.
DSR should be directly connected to DTR and powerd keeps
that line high, so if DSR is low then something is wrong with the
connection. Powerd will notify you about this fact every two minutes.
When it sees that the connection has been restored it will say so.
It's pretty simple to connect your UPS to the Linux machine. The steps are easy:
1.
Make sure you have an UPS with a simple relay output: it should close its
connections (make) if the power is gone, and it should open its
connections (break) if the power is good.
2.
Buy a serial plug. Connect the DTR line to the DSR line directly. Connect
the DTR line and the DCD line with a 10 kilo ohm resistor. Now
connect the relay output of the UPS to GROUND and the DCD line. If you
don't know what pins DSR, DTR, DCD and GROUND are you can always ask at
the store where you bought the plug.
Well, not a real bug but powerd should be able to do a broadcast or
something on the ethernet in case more Linux-boxes are connected to the same
UPS and only one of them is connected to the UPS status line.