Provided by: apcupsd_3.12.1-1_i386 bug


       apcupsd - daemon for most APC’s UPS for Linux




       This  document  is considerably out of date. It can be used for a brief
       overview of apcupsd, but you should consult the html manual for current
       information.  Normally this manual will be loaded on your system in the
       doc directory, which varies from system to system. Otherwise,  you  may
       find an online version at:

       This  daemon  can be used for controlling the most APC UPSes.  During a
       power failure, "apcupsd" will inform the users about the power  failure
       and  that  a  shutdown  may  occur.  If power is not restored, a system
       shutdown will follow when the battery is exausted, a timeout  (seconds)
       expires,   or  runtime  expires  based  on  internal  UPS  calculations
       determined by power consumption rates.  If the power is restored before
       one  of the above shutdown conditions is met, apcupsd will inform users
       about this fact.

       The shutdown is made  by  script  calls  to  "/etc/apcupsd/apccontrol",
       which is called by "apcupsd".  Consequently, no changes to /etc/inittab
       are necessary.  There is no communication between apcupsd  and  init(1)
       process.   Apcupsd  modifies  the halt script so that at the end of the
       shutdown process, apcupsd will be re-executed in order to power off the
       UPS.  On  certain  platforms  (e.g. FreeBSD) there is no halt script so
       apccontrol must be modified to cause apcupsd to power off the UPS after
       a delay time.

       The  apcupsd  daemon  now  supports  two networking modes that function
       independently, but if desired they can both run at the same time.

       Most users will probably enable the first  network  mode  and  simplest
       (NIS  or  Network  Information Service), which permits apcupsd to serve
       status and event information to clients over the network.

       The second networking mode is for multiple networked machines that  are
       powered  by  the same UPS. In this mode, one machine is configured as a
       master with the UPS attached to the serial port.   The  other  machines
       (max.   20)  powered  by  the  same  UPS are configured as slaves.  The
       master has  a  network  connection  with  the  slaves  and  sends  them
       information  about  the  UPS  status.  This  mode is significantly more
       complicated to setup than the NIS networking mode described above.

       For details and configurations on these networking modes please see the

       RedHat  and  SuSE  versions  of Linux have direct install support.  All
       other flavors of Linux may need some fussing with to  get  the  install


       -c --configure
              Attempts  to  configure the UPS EPROM to the values specified in
              the configuration file "/etc/apcupsd/apcupsd.conf".  This option
              is  now  deprecated  (not  supported)  and  should  not be used.
              Instead use the apctest program, which has an interactive EEPROM

       -d --debug <level>
              Turns on debugging output.

       -f --config-file <file>
              Specifies  the  location of the configuration file.  The default
              is: /etc/apcupsd/apcupsd.conf

       -k --killpower
              Attempt to turn the UPS off. This option is normally  only  used
              by the daemon itself to shut the UPS off after a system shutdown
              has completed.

       -V --version
              Prints the apcupsd version number and the help.

       -? --help
              Prints a brief apcupsd help screen.


       It may be necessary to change the configuration information in the file
       "/etc/apcupsd/apcupsd.conf"  to  meet  your  needs and to correspond to
       your configuration.  This file is a plain ASCII file and  you  can  use
       your favorite editor to change it.

       Configuration commands in /etc/apcupsd/apcupsd.conf are:

       UPSCABLE -- <type of cable you are using>
       [ simple | 940-0020B | 940-0023A (broken) ]
       [ smart | 940-0024B | 940-0024C ]
       [ 940-0095A | 940-0095C ]
       [ ether ]
       [ usb ]

       UPSTYPE -- <Type of APCC UPS you have>
       [ dumb | apcsmart | net | usb | snmp | test ]

       DEVICE -- <name of serial port>
       Please specify which device is used for UPS communication.  The default
       is /dev/ttyS[0|1|2|3].  If you have a USB  UPS,  you  should  leve  the
       DEVICE directive blank and apcupsd will figure out where your device is
       located. If you have problems, please see the manual  as  it  has  more

       LOCKFILE -- <path to lockfile>
       By  supplying  this  argument, "apcupsd" tries to create a lockfile for
       the serial or USB port in the specified directory.

       NETSTATUS [on | off]
       This configuration command turns the network information server  on  or
       off. If it is on, apcupsd will spawn a child process that serves STATUS
       and EVENTS information over the network. This information is  currently
       used  by the Web based CGI programs.  The default is on. In some cases,
       for added security, you may  want  to  invoke  a  separate  information
       server  daemon from the inetd daemon. In this case, NETSTATUS should be

       STATUSPORT <port>
       This configuration command specifies the port to be used by the apcupsd
       server. The default is 3551.

       EVENTFILE <filename>
       If  you want the apcupsd network information server to provide the last
       10 events via the network, you must specify a file where  apcupsd  will
       save  these events. The default is: /var/log/ Currently,
       apcupsd will save at most the last 50 events. When more than 50  events
       are  recorded and a network request for the events arrives, the network
       server  will  truncate  the  file  to  the  most  recent   10   events.
       Consequently this file will not grow indefinitely as long as the events
       are checked from time to time.






       ANNOY -- <time in seconds>
       Please specify the time in seconds between messages  requesting  logged
       in  users to get off the system. This timer starts only when the UPS is
       running on batteries.  The default is 300 seconds (5 minutes).

       ANNOYDELAY -- <time in seconds>
       Please specify delay time in seconds before apcupsd  begins  requesting
       logged in users to get off the system. This timer starts only after the
       UPS is running on batteries.   This  timer  is  reset  when  the  power
       returns.  The  default is 60 seconds.  That is the first warning to log
       off the system occurs after 60 seconds on batteries.

       NOLOGON -- <specifies when apcupsd should create the nologon file>
       [ disable | timeout | percent | minutes | always ] are valid types.

       Based on Ten (10) percent of a setting.  This allows one to define  the
       point  when  the  /etc/nologin  file  is  added.  This is important for
       allowing systems with BIG UPSes to run as  normally  until  the  system
       administrator  determines the need for dumping users.  The feature also
       allows the system administrator to hold the "ANNOY"  factor  until  the
       /etc/nologin file is added.

       disable prevents apcupsd from creating the nologin file.

       timeout  specifies  a  specific  wait  time before creating the nologin

       percent specifies the percent battery charge remaining before  creating
       the nologin file.

       minutes  specifies  the  battery  runtime remaining before creating the
       nologin file.

       always causes the nologin file to be immediately  created  on  a  power

       BATTERYLEVEL -- <percent of battery>
       If  BATTERYLEVEL  is  specified,  during  a power failure, apcupsd will
       shutdown the system when the remaining battery charge falls  below  the
       specified percentage.  The default is 5.

       MINUTES -- <battery runtime in minutes>
       If  MINUTES is specified, during a power failure, apcupsd will shutdown
       the system  when  the  remaining  remaining  runtime  on  batteries  as
       internally  calculated  by  the UPS falls below the time specified. The
       default is 3.

       TIMEOUT -- <time in seconds>
       After a power failure,  the  system  will  be  shutdown  after  TIMEOUT
       seconds  have expired.  Normally for SMARTUPSes, this should be zero so
       that the shutdown time will be  determined  by  the  battery  level  or
       remaining  runtime  (see  above). This command is useful for dumb UPSes
       that do not report battery level or the remaining runtime. It  is  also
       useful  for  testing  apcupsd in that you can force a rapid shutdown by
       setting a small value (e.g. 60) and pulling the plug to the UPS.

       The timeout for the master is always 30 seconds longer than slaves.

       TIMEOUT,  BATTERYLEVEL,  and  MINUTES  can  be  set  together   without
       problems.  The  daemon  will  react  to  the first case or test that is
       valid. Normally SmartUPS users will set TIMEOUT to  zero  so  that  the
       system is shutdown depending on the percentage battery charge remaining
       (BATTERYLEVEL) or the remaining battery runtime (MINUTES).

       UPSCLASS -- <class of operation>
       [ standalone | shareslave | sharemaster ] and
       [ netslave | netmaster ] are valid types.
       [ standalone | netslave | netmaster ] are tested classes.
       [ shareslave | sharemaster ] classes are being tested.

       The default is "standalone" and should be used for all machines powered
       by  the  UPS  and having a serial port connection to the UPS, but where
       there are no other computers dependent power from the same  UPS.   This
       is the "normal" case.

       Use  "netmaster",  if  and only if you have a serial port connection to
       the UPS and there are other machines deriving power from the same  UPS.

       Use "netslave" if and only if you have no serial port connection to the
       UPS, but you derive power from it.

       Use "shareslave" if and only if you are using a ShareUPS and  connected
       to a BASIC Port with Simple Signal.

       Use  "sharemaster",  if  and  only  if  you  are  using  a ShareUPS and
       connected to the ADVANCED Port Smart Signal control.

       UPSMODE -- [ disable | share | net | sharenet ] are valid types.

       [ disable | net ] are the only known and tested classes.
       [ share | sharenet ] classes are being tested.

       BETA [ share ] For two or seven (2/7) additional simple signal ports on
       a SmartAccessories(tm) (internal/external box) for SmartUPSes.

       NETTIME -- <time in seconds>
       The  rate  in  seconds  that  broadcasts information to Slave machines.
       This rate is reset if there is a power state change. This value is  now
       passed to the slaves to sync. the openning of a socket by the slave for
       the master.

       NETPORT -- <TCP|UDP port number>
       This unix service port number must be set in the /etc/services file  as
               tab     tab(spacejunk)  tab     tab
       name                    (stuff)/xxp             #
       apcupsd         NETPORT/tcp             #
       apcupsd         NETPORT/udp             #

       MASTER -- <name of master> for Slave machine.
       The  name  of  the  master which is authorized to send commands to this

       SLAVE -- <name of slave(s)> for Master machine.
       The name of the slave machine attached to the  master.   There  can  be
       max. 20 slaves attached to one master.

       USERMAGIC -- < user defined password> for the slave machine.
       The  second level of password security. It must be (17) characters long
       without  spaces.  This  is  passed  to  the   master   machine   during
       initialization of sockets. This string should be different for each and
       every slave on the network. This is not at all secure as passwords  are
       passed  in  the  clear.  Please  protect your network by firewalling or


       If you start getting the follow message:

       Emergency -- Batteries Have Failed!
       Change Them NOW!

       Act upon it quickly. It means what it says.

       Also, not all "SmartUPS" models are eqaully smart.  A  non-NET  or  old
       class  of "SmartUPS" has a subset of the full UPSlink(TM) language, and
       can not be polled for its control codes.


       Special note for ShareUPS users, TIMEOUT, BATTERYLEVEL, and MINUTES are
       disabled  or set to default values. Currently, there is not a known way
       for early signals to be sent to BASIC Ports. MINUTES are set to 0.


       /etc/apcupsd/apcupsd.conf - configuration file.
       /var/log/apcupsd.status - STATUS file
       /var/log/ - where up to the last 50 events are stored for
       the network information server.


       apcupsd  generates events when certain conditions occur such as a power
       failure, batteries exhausted, power return,

       These events are sent  to  the  system  log,  optionally  sent  to  the
       temporary events file (/var/log/, and they also generate
       a call to /etc/apcupsd/apccontrol which in turn will call  any  scripts
       you have placed in the /etc/apcupsd directory.

DATA format

       If  the DATATIME configuration command is set nonzero, apcupsd will log
       a data record at the interval defined on  the  DATATIME  command.  This
       data  record is in a format similar to the PowerChute data file format.

STATUS format

       The STATUS output is in ASCII format and generally there  is  a  single
       piece  of  information on each line output.  The format varies based on
       the type of UPS that you are using.

       DATE     : time and date of last update
       CABLE    : cable type used
       UPSMODEL : ups type or signal method
       UPSMODE  : tells apcupsd what to check
       SHARE    : if ShareUPS is used, this determines what

       SmartUPS and MatrixUPS Smart Signals
       ULINE    : Current (observed) Input Line Voltage
       MLINE    : Max (observed) Input Line Voltage
       NLINE    : Min (observed) Input Line Voltage
       FLINE    : Line Freq (cycles)
       VOUTP    : UPS Output Voltage
       LOUTP    : Percent Load of UPS Capacity
       BOUTP    : Current Charge Voltage of Batteries
       BCHAR    : Batteries Current Charge Percent of Capacity
       BFAIL    : UNSIGNED INT CODE (ups state)
       UTEMP    : Current UPS Temp. in Degrees Cel.
       DIPSW    : Current DIP switch settings for UPS.

       Newer BackUPS Pro Smart Signals
       ULINE    : Current (observed) Input Line Voltage
       MLINE    : Max (observed) Input Line Voltage
       NLINE    : Min (observed) Input Line Voltage
       FLINE    : Line Freq (cycles)
       VOUTP    : UPS Output Voltage
       LOUTP    : Percent Load of UPS Capacity
       BOUTP    : Current Charge Voltage of Batteries
       BCHAR    : Batteries Current Charge Percent of Capacity
       BFAIL    : UNSIGNED INT CODE (ups state)

       BackUPS Pro and SmartUPS v/s Smart Signals
       LINEFAIL : OnlineStatus
       BATTSTAT : BatteryStatus
       MAINS    : LineVoltageState
       LASTEVNT : LastEventObserved

       BackUPS and NetUPS Simple Signals
       LINEFAIL : OnlineStatus
       BATTSTAT : BatteryStatus

       BackUPS Pro and SmartUPS v/s Smart Signals
       OnlineStatus BatteryStatus LineVoltageState LastEventObserved

       BackUPS and NetUPS Simple Signals
       OnlineStatus BatteryStatus


       The html manual installed on your system or


       Andre M. Hedrick

   Retired Co-AUTHOR
       Christopher J. Reimer

   Current maintainers
       Kern Sibbald Adam Kropelin

       An enormous list of past and former persons who have devoted their time
       and energy to this project -- thanks.

                APC UPS management under Linux -- November 1999     apcupsd(8)