---
name: "apcupsd"
section: "8"
platform: "linux"
package: "apcupsd"
version: "3.14.14-9"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/apcupsd"
---

# apcupsd(8)

a daemon for controlling most APC UPSes

## NAME

**apcupsd** – a daemon for controlling most APC UPSes

## SYNOPSIS

**apcupsd** \[**-b**\] \[**-d** *level* \| **--debug** *level*\] \[**-f** *file* \| **--config-file** *file*\] \[**-P** *file* \| **--pid-file** *file*\] \[**-p** \| **--kill-on-powerfail** \| **-t** \| **--term-on-powerfail**\] \[**-R**\]

**apcupsd** \[**-k** \| **--killpower** \| **--hibernate** \| **-o** \| **--power-off**\]

**apcupsd** \[**-h** \| **--help**\]

**apcupsd** \[**-V** \| **--version**\]

## DESCRIPTION

The **apcupsd** daemon controls the operation of most American Power Conversion Corp  (APC) UPSes.  During a power failure, **apcupsd** informs users about the loss of utility power and that a shutdown may occur.   If utility power is not restored, a system shutdown will follow when the  battery is exhausted, a specified timeout expires, a specified battery  charge percentage is reached, or a specified battery runtime (based on  internal UPS calculations and determined by power consumption rates) expires.  If the utility power is restored before one of the these  shutdown conditions is met,  **apcupsd** will inform users of this and the shutdown will generally be cancelled. Refer to the Implementation Notes section below for situations in which  the shutdown may not be cancelled.

The meaning of the command line options is as follows:

- **-b**

  Run in the foreground, do not detach and become a daemon.

- **-d** *level* **--debug** *level*

  Set debugging output level where level is a number greater than zero.

- **-f** *file* **--config-file** *file*

  Load the specified configuration file.  The default configuration file is  */etc/apcupsd/apcupsd.conf*. It must be changed when running more than one copy of **apcupsd** on the same computer to control multiple UPSes.

- **-k** \| **--killpower** \| **--hibernate**

  Power down the UPS in hibernate mode after a 10 second delay. This  option is normally only used by  **apcupsd** itself to power down the UPS after a system shutdown has almost completed.  In hibernate mode, the UPS will again supply power to the system when the  utility power returns.

- **-o** \| **--power-off**

  Power down UPS completely. The UPS will not supply power to the system when the utility power returns.

- **-P** *file* **--pid-file** *file*

  Create the specified process ID file. The default is */var/run/apcupsd.pid*. It must be changed when running more than one copy of **apcupsd** on the same computer to control multiple UPSes.

- **-p** **--kill-on-powerfail**

  **apcupsd** commands the UPS to power down in hibernate mode just before **apcupsd** starts the system shutdown. This relies on the grace shutdown delay  of a Smart-UPS being long enough to allow the system to shutdown  completely before the UPS shuts off the power to the system and goes  into hibernate mode. This shutdown grace delay is a programmable value stored in a Smart-UPS EEPROM which can be changed using [apctest(8)](/apctest/8.md). In hibernate mode, the UPS will again supply power  to the system when the utility power returns. Refer to [apcupsd.conf(5)](/apcupsd.conf/5.md) for an alternative method using the KILLDELAY configuration  directive and the only method available when using a Back-UPS or other  UPS operating in simple signalling mode.

- **-t** **--term-on-powerfail**

  **apcupsd** exits immediately when it issues the system shutdown command.  This behaviour is useful for those systems where it is not possible  to insert  **apcupsd** commands in a halt script to issue the killpower command.  Without this option,  **apcupsd** will wait for the SIGTERM signal from the system shutdown process before exiting.

- **-R**

  Put a UPS which runs in smart signalling mode by default (eg a Smart-UPS) into simple signalling mode.

- **-v** **--version**

  Prints the **apcupsd** version number and the program help.

- **-h** **--help**

  Prints the program help.

The **apcupsd** daemon supports a networking mode called Network  Information Server  (NIS) -- not related  to Sun's NIS/YP --  in which the daemon serves status and event information to  clients over a network. See the "Running The Network Information  Server" section of the apcupsd manual for more information and  configuration details on this mode.

The  **apcupsd** daemon also supports a Smart-UPS in SNMP mode provided an APC Web/SNMP or APC PowerNet SNMP card is installed in the UPS's SmartSlot.  For more information and configuration details on this mode, refer to the  "Support for SNMP UPSes" section of the apcupsd manual.

## IMPLEMENTATION NOTES

The shutdown is made by calls to the script */etc/apcupsd/apccontrol* by the **apcupsd** daemon.  Consequently, no changes to */etc/inittab* are necessary on Linux as there is no communication between the  daemon and the [init(1)](/init/1.md) process.  Installation of the daemon modifies  the halt script so that at the end of the shutdown process, the daemon will be re-executed to power off the UPS in hibernate mode.

On some operating systems (eg FreeBSD) there is no halt script so apccontrol  must be modified to cause the daemon to power off the UPS after a delay.  Alternatives are to use the --kill-on-powerfail command on the **apcupsd** command line or refer to  [apcupsd.conf(5)](/apcupsd.conf/5.md) for details of the KILLDELAY configuration directive.

## CONFIGURATION

It will almost certainly be necessary to customise the configuration  information in the */etc/apcupsd/apcupsd.conf* configuration file to suit your configuration and desired UPS behaviour.

For information on the configuration directives and the format of  the configuration file, refer to  [apcupsd.conf(5)](/apcupsd.conf/5.md).

## EVENTS

**apcupsd** generates events when certain conditions occur.  These events are sent to the system log and, optionally, to the temporary events file  (*/var/log/apcupsd.events*). They also generate a call to  the */etc/apcupsd/apccontrol* script which in turn will call any custom scripts placed in the */etc/apcupsd* directory which may override apccontrol's default behaviour. For  details of the events and customising apccontrol's behaviour, refer to [apccontrol(8)](/apccontrol/8.md).

## DATA FILE FORMAT

If the DATATIME configuration directive is set to non-zero,  **apcupsd** will log a data record at the interval defined by the DATATIME directive. This data record is in a format similar to the APC PowerChute software data file format.

## STATUS REPORT FORMAT

The status report output format is simple ASCII. Generally there is a single piece of information on each line of output. The content varies based on the model of UPS being used and, in some cases, the firmware version. This status report is also optionally written the the  */etc/apcupsd/apcupsd.status* file. Refer to [apcaccess(8)](/apcaccess/8.md) for full details of the status report output.

## FILES

*/etc/apcupsd/apcupsd.conf* default configuration file

*/var/run/apcupsd.pid* default process ID file

*/var/log/apcupsd.status* optional status file

*/var/log/apcupsd.events* default events file

## SEE ALSO

[apcupsd.conf(5)](/apcupsd.conf/5.md), [apcaccess(8)](/apcaccess/8.md), [apccontrol(8)](/apccontrol/8.md), [apctest(8)](/apctest/8.md).

The HTML apcupsd manual installed on your system or available online at http://www.apcupsd.org/

## AUTHORS

### This page

Trevor Roydhouse (current) Andre M. Hedrick Christopher J. Reimer

### Software

Adam Kropelin (current Project Manager and Code Maintainer) Kern Sibbald (former Project Manager and Code Maintainer) Riccardo Facchetti (former Project Manager and Code Maintainer) Andre M. Hedrick (Project Founder and former Code Maintainer)

### Contributors

An enormous number of users who have devoted their time and energy to  this project -- thanks.
