apmd



APMD(8)                                                                APMD(8)




NAME

       apmd - Advanced Power Management (APM) daemon


SYNOPSIS

       apmd  [  -TVWciqv  ]  [ -P program ] [ -T seconds ] [ -c seconds ] [ -p
       percent ] [ -v level ] [ -w percent ]


DESCRIPTION

       apmd is an monitoring daemon for the Advanced  Power  Management  (APM)
       subsystem.   The  APM  subsystem consists of power-management hardware,
       firmware usually referred to as the APM BIOS and a driver in the  oper-
       ating system kernel.  The daemon can execute a program (usually a shell
       script) when events are reported by the APM subsystem,  and  will  log,
       via  syslogd(8),  certain  changes in power status.  When the available
       battery power becomes very low it can alert the user.

       When the APM subsystem notifies the daemon  of  a  pending  suspend  or
       standby  request, apmd will run a proxy program, log the event, sync(2)
       data to the disk and then tell the APM subsystem to continue its opera-
       tion.

       Preparations  for  power management events are made mainly by the proxy
       program specified using the -P option.  The proxy  program  is  invoked
       with one or two arguments:

       start  Invoked when the daemon starts.

       stop   Invoked when the daemon stops.

       standby ( system | user )
              Invoked  when  the  APM  subsystem reports that standby has been
              initiated.  The  second  parameter  indicates  whether  firmware
              ("system") or software ("user") was the originator of the event.

              The "standby" mode conserves power but leaves the  machine  able
              to  respond  almost  immediately to user activity.  Most laptops
              can’t stay in standby mode on battery power for more than a  few
              hours  or  a day.  Normally, nothing special needs to be done to
              prepare for "standing by".

       suspend ( system | user )
              Invoked when the APM subsystem reports that suspension has  been
              initiated.   The  second  parameter  indicates  whether firmware
              ("system") or software ("user") was the originator of the event.

              The  "suspend"  mode aggressively conserves power.  Usually this
              involves shutting off power to all devices except the  CPU  core
              and memory, which are put into a very low power mode.  Most lap-
              tops can stay suspended, using battery power alone, for  several
              days.  ("Hibernation" is a kind of super-suspend, where all that
              state is written to disk and the machine uses no power.   Hiber-
              nation is treated like suspension by the APM subsystem.)

              Before  suspending, PCMCIA devices may need to be disabled using
              cardctl(8), and some modular  device  drivers  may  need  to  be
              unloaded if they have not been designed to support power manage-
              ment.

       resume ( suspend | standby | critical )
              Invoked when the APM subsystem reports that computer has resumed
              normal  operation.   The  second parameter indicates the kind of
              event from which the system is resuming.  (A "critical"  suspend
              is a suspension that the APM subsystem performs in an emergency.
              Some kernels do not pass this event  to  user  space.   If  apmd
              receives  the event, it acknowledges the event and exits immedi-
              ately without logging or running the proxy program.)

              When resuming, PCMCIA devices may need to  be  re-enabled  using
              cardctl(8),  and  some  modular drivers may need to be reloaded.
              Note that in the case of a critical suspend,  the  system  state
              may not have been completely saved.

       change power
              Invoked when the APM subsystem reports a change in power status,
              such as a switch from mains to battery power.

       change battery
              Invoked when the APM subsystem reports that the charge of one or
              more  batteries  is  low.   A  few  minutes of battery power may
              remain.

       change capability
              Invoked when the APM subsystem reports some change in power man-
              agement capabilities.  It may have been caused by operation of a
              setup utility, or by the installation or removal of devices.

       apmd emits various messages, most of which are self-explanatory.   Bat-
       tery status log entries contain three fields, separated by commas.  The
       first field indicates how full the battery is as a  percentage  of  its
       capacity.   The second field indicates whether the battery is charging,
       not charging, or discharging.  When possible, apmd adds in  parentheses
       its  estimate  of the rate of charging or discharging.  The third field
       indicates how much time the battery can or could be used to  power  the
       computer.   This  information  is  provided by the APM subsystem.  When
       possible, apmd adds in parentheses its own estimate of the battery life
       (if  discharging)  or  of the time required to charge the battery fully
       (if charging).


OPTIONS

       -P program, --proxy program
              Specifies the proxy program to execute when events are received.
              See  above  for information about the arguments supplied to this
              program.

       -T [seconds] , --proxy-timeout [seconds]
              Sets a time-out for the proxy.  Without  this  option  (or  with
              this option and a negative argument) apmd waits indefinitely for
              the proxy to finish.  If the proxy enters an  infinite  loop  or
              wait  then  the  machine  may  appear  to have crashed.  If this
              option is given a positive integer argument then apmd will  wait
              only  that  many seconds for the proxy to finish, after which it
              will log a warning, kill the proxy, and continue processing  the
              event.  The default is 30 seconds.

       -V, --version
              Prints the version of the apmd program.

       -W, --wall
              In  addition to logging low battery status (as determined either
              by the -w level or by the firmware) using syslog(2), apmd  will,
              given this option, also use wall(1) to alert all users.  This is
              most useful if syslogd(8) is not set up to write ALERT  messages
              to  all  users.  If both methods are used, more warnings will be
              made during the critical time period.

       -c [seconds] , --check [seconds]
              Controls how many seconds to wait for an  event.   Without  this
              option  (or with this option and a negative argument) apmd waits
              indefinitely for an event.  If this option is given  a  positive
              integer  argument  then  apmd  will  wait only that many seconds
              before checking the battery level and  possibly  sending  out  a
              warning,  calling  the proxy or making an entry in the log.  The
              default is 30 seconds.

       -i, --ignore-bios-battery-low
              Causes apmd to ignore a LOW BATTERY signal sent by the APM  sub-
              system.   Some firmware signals a low battery at the wrong time.
              Note that LOW BATTERY events may  still  be  generated  by  apmd
              itself based on the warning level.

       -p percent, --percentage percent
              Controls  how often the battery status is logged.  A new line is
              printed each time the battery content changes by  percent_change
              if  logging  is enabled.  The default is 5.  Use a value greater
              than 100 to disable periodic logging of the battery level.

       -q, --quiet-bios-battery-low
              Causes apmd not to generate a warning when a LOW BATTERY  signal
              is  received  from  the  APM  subsystem.   The  firmware on some
              machines produces an audible warning when power is about  to  be
              used up, so an extra warning may not be needed.

       -v [level] , --verbose [level]
              The  daemon can generate messages of varying degrees of unimpor-
              tance.  Each message is assigned  one  of  the  priority  levels
              defined  for  the  syslogd(8)  subsystem, ranging from 0 (EMERG,
              least unimportant) to 7 (DEBUG, most unimportant).  This  option
              sets  the  threshold  level above which messages are suppressed.
              Without an argument it increments the threshold by 1, thus  mak-
              ing apmd more verbose.  The default is 5 (NOTICE).

       -w percent, --warn percent
              When  the  battery  is not being charged and the battery content
              falls below the specified percent of capacity, and no such event
              has yet occurred in the current discharge cycle, apmd will log a
              warning at the ALERT log level to syslog(2) and generate  a  LOW
              BATTERY event.  If the -W or --wall option was given, the daemon
              will also use wall(1) to alert all users of impending doom.  The
              default  warning  level  is 10.  Use a negative value to disable
              this feature.

       -h, --help
              Causes apmd to print a brief command summary and exit.



BUGS

       This daemon supports all APM events described in the APM BIOS  specifi-
       cation  version  1.2;  however it fails to support some of the advanced
       features of APM 1.2, such as reporting the conditions of multiple  bat-
       teries.  (Multiple batteries are currently treated as if they were just
       one large one.)

       Estimates of charge and discharge rates and times can be  very  inaccu-
       rate.

       There  is  no  interaction  yet  with ACPI support as found in newer PC
       hardware.


FILES

       /dev/apm_bios
              Device through  which  apmd  communicates  with  the  Linux  APM
              driver.

       /proc/apm
              APM driver status information

       /etc/apmd_proxy
              Proxy program that is run if none is specified.

       /etc/apm/apmd_proxy
              Proxy program that is run if none is specified. (Debian)


AUTHOR

       This  program  was  written  by Rik Faith (faith@cs.unc.edu) and may be
       freely distributed under the terms of the GNU General  Public  License.
       There  is  ABSOLUTELY  NO WARRANTY for this program.  The current main-
       tainer is Avery Pennarun (apenwarr@worldvisions.ca).


SEE ALSO

       apm(1), xapm(1), cardctl(8), syslogd(8).



                                 January 2004                          APMD(8)

Man(1) output converted with man2html