A simple battery daemon written for use with a daemontools-style supervisor.

run polls the status of a check function with an interleaved call to interval. On the transition from a successful check exit status to an unsuccessful check exit status the failed function is called.


# ./install /etc/sv/battd
# ln -s /etc/sv/battd /var/service

Adjust the above as needed.


Configure conf appropriately. This should contain three functions:

interval : Called between consecutive calls to check.

check : Called to determine the battery status.

failed : Called when the battery status has transitioned from a successful to a failing return.

An example conf is included and installed alongside the run script. An included battcheck awk script takes two optional arguments and a path to the uevent file of a battery to determine if the battery capacity and estimated run-time meet the specified criteria. Multiple invocations of battcheck can be used to handle more complex logic involving multiple batteries.