Scroll to navigation



ntpshmmon - capture samples from gpsd or other ntpd refclock sources


ntpshmmon [-?] [--count COUNT] [--help] [--offset] [--rmshm] [--seconds SEC] [--verbose] [--version] [-h] [-n COUNT] [-o] [-s] [-t SEC] [-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 3.18
#      Name   Seen@                Clock                Real               L Pre
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 comments or sample lines. A comment line begins with a # and should be ignored by programs that interpret this format.

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 system clock time measured by the source and "receiver time" is from the receiver. Both times are in UTC. 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.

If the -o option is used, the "Seen@" column is replaced with the "Offset" column. The "Offset" is the difference between "Clock" and "Real" times.


-?, -h, --help

Display program usage and exit.

-n COUNT, --count COUNT

Set maximum number of samples to collect to COUNT.

-o, --offset

Replace the "Seen@" column with the "Offset" column. The "Offset" is the difference between "Clock" and "Real" times.

-s, --rmshm

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

-t SECONDS, --seconds SECONDS

Set maximum time to collect samples in seconds to SECONDS.

-v, --verbose

Enable verbose status messages.

-V, --version

Display program version and exit.


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


Eric S. Raymond <>.

5 December 2020 The GPSD Project