ntpshmmon — capture samples from GPS or other ntpd refclock sources


ntpshmmon [-h ] [-n nsamples] [-s ] [-t seconds] [-v ] [-V ]


This program monitors the shared-memory segments updated by gpsd(8) (and possibly other refclock sources) as a way of communicating with ntpd, the Network Time Protocol daemon. It reads these in exactly the way an ntpd instance does. It can be run concurrently with ntpd without interfering with ntpd's normal operation.

This program runs forever, or until a termination option is matched, or until interrupted, generating sample reports to standard output. Each line consists of whitespace-separated textual fields.

Here is an example of the beginning of a report file:

ntpshmmon version 1
#      Name   Seen@                Clock                Real               L Prec
sample NTP2 1424926256.443030206 1424926256.115869233 1424926256.000000000 0  -1
sample NTP3 1424926256.443060517 1424926255.995430821 1424926256.000000000 0 -20
sample NTP3 1424926256.995747347 1424926256.995422728 1424926257.000000000 0 -20
sample NTP2 1424926257.112433572 1424926257.111936726 1424926257.000000000 0  -1
sample NTP3 1424926257.996221153 1424926257.995410232 1424926258.000000000 0 -20
sample NTP2 1424926258.107769409 1424926258.107451006 1424926258.000000000 0  -1
sample NTP3 1424926258.995647636 1424926258.995406476 1424926259.000000000 0 -20

The output always begins with a header line expressing the version of the output format; the version line begins with "ntpshmmon version" and is followed by a numeric version field.

The remainder of the file is either commments or sample lines. A comment line begins with a # and should ignored by programs that interpret this format. This program never generates such lines itself.

The fields of a sample line are as follows:

  1. The keyword "sample"

  2. The NTP unit from which it was collected.

  3. Collection time of day, seconds.

  4. Receiver time of day, seconds.

  5. Clock time of day, seconds.

  6. Leap-second notification status.

  7. Source precision (log(2) of source jitter).

In these fields, "clock time" is the high-precision time measured by the source and "receiver time" is Unix UTC time at the receiver. It is normal for the seconds part of receiver time to coincide with the seconds part of collection time and for the nanoseconds part of receiver time to be zero.


Enable verbose status messages.


Device poll interval in fractional seconds - defaults to 1.


Set maximum number of samples to collect.


Remove all SHM segments used by GPSD. This option will normally only be of interest to GPSD developers.


Set maximum time to collect samples in seconds.


Display program usage and exit.


Display program version and exit.


gpsd(8), gpsdctl(8), gps(1), libgps(3), libgpsd(3), gpsprof(1), gpsfake(1).


Eric S. Raymond .