PACEMAKER(8)

NAME
pacemaker - clock drift adjustment daemon

SYNOPSIS
pacemaker [-d drift] [-b] [-e error] [-a interval] [-i] [-v] [-n]

DESCRIPTION
pacemaker adjusts the system clock periodically to compensate for clock drift. The clock drift is normally computed by ntpd(8), which writes a clock drift value in /var/db/ntp.drift. By default, pacemaker will call adjtime(2) once per second to slew the system clock. The daemon is started by launchd(8) only when the drift file is present or has just been created in the file system. pacemaker detects changes in the file and re-calculates clock adjustment values appropriately. The daemon will exit if the drift file is deleted and is not re-created within one minute.

As a fail-safe mechanism, pacemaker will reset the system clock using settimeofday(2) if the system clock requires adjustment exceeding the maximum value that can be accomodated by adjtime to slew the clock. In practice, this extreme case should never occur.

The -d option allows the specification of either a floating-point drift value, or the path name of an alternate drift file. If a floating point drift value is specified, pacemaker will use the given value and will not read a drift file.

To reduce power consumption, especially when the system is using internal battery power, it may be desirable to reduce the frequency of calls to adjust the system's clock drift. The -e and -a options, together with the -b flag allow several ways to control the clock adjustment frequency.

The floating point value following -e specifies a maximum error tolerance in seconds for the system clock. For example, a value of 0.001 specifies that the clock drift adjustment should only be done frequently enough to keep the system clock error within one millisecond, based on the current clock drift rate.

Alternatively, the clock adjustment frequency can be specified exactly as a value in seconds following -a.

When both -e error and -a interval are provided, pacemaker will choose to adjust the system clock either every interval seconds, or less frequently if the clock error will remain within error seconds.

The settings for -e and/or -a may be specified for operation of the system while using an external power source, and specified independently for operation using internal batteries. By default, the values for -e and/or -a are used for both power configurations. If the -b flag precedes -e and/or -a, then the following settings apply only when the system is using internal battery power.

For example, starting pacemaker with the following parameters will cause it to adjust the clock every 2 seconds when the system is using external power. When running on battery power, it will adjust the clock no more than once every 10 seconds, or less frequently if the clock error remains less than five milliseconds.

    pacemaker -a 2 -b -a 10 -e 0.005

When invoked on the command-line with -i, pacemaker prints a summary of internal parameters and then exits. The -v flag causes pacemaker to print copies of its log messages to standard error. Note that this requires running the program from the command line rather than from launchd. -n causes pacemaker to run without actually attempting to adjust the system clock.

FILES
/var/db/ntp.drift
    default clock drift file

SEE ALSO
launchd(8), ntpd(8), adjtime(2), settimeofday(2).

HISTORY
The pacemaker daemon was introduced in OS X 10.9.