Scroll to navigation



gpxlogger - Tool to connect to gpsd and generate a GPX file


gpxlogger [-?] [--daemonize] [--debug debug-level] [--export export-method] [--exports] [--help] [--intervaltrack timeout] [--minmove minmove] [--output filename] [--version] [-d] [-D debug-level] [-e export-method] [-f filename] [-h] [-i track timeout] [-l] [-m minmove] [-V] [server [:port [:device]]]


This program collects fixes from gpsd and logs them to standard output in GPX, an XML profile for track logging.

The output may be composed of multiple tracks. A new track is created if there's no fix written for an interval specified by the -i, --interval and defaulting to 5 seconds.

gpxlogger can use any of the export methods that gpsd supports. For a list of these methods, use the -l, --exports. To force the method, give the -e, --export one of the colon-terminated method names from the -l, --exports table.


-?, -h, --help

Print a summary of options and then exit.

-d, --daemonize

Run as a daemon in background. It requires the -f, --output option, which directs output to a specified logfile.

-D LVL, --debug LVL

Sets the debug level; it is primarily for troubleshooting. It enables various progress messages to standard error.

-e METHOD, --export METHOD

If D-Bus support is available on the host, GPSD is configured to use it, and -e dbus, --export dbus is specified, this program listens to DBUS broadcasts from gpsd via org.gpsd.fix.

With -e sockets, or if sockets is the method defaulted to, you may give a server-port-device specification as arguments.

The sockets default is to all devices on the localhost, using the default GPSD port 2947. An optional argument to any client may specify a server to get data from. A colon-separated suffix is taken as a port number. If there is a second colon-separated suffix, that is taken as a specific device name to be watched. However, if the server specification contains square brackets, the part inside them is taken as an IPv6 address and port/device suffixes are only parsed after the trailing bracket. Possible cases look like this:


Look at the default port of localhost, trying both IPv4 and IPv6 and watching output from serial device 1.

Look at port 2317 on, trying both IPv4 and IPv6.

Look at port 2317 at the specified IPv4 address, collecting data from attached serial device 3.


Look at port 2317 at the specified IPv6 address, collecting data from attached serial device 5.

With -e shm, --export shm this program will listen to the local gpsd using shared memory.

-i SECONDS, --interval SECONDS

A new track is created if there's no fix written for an interval of SECONDS. Defaulting to 5 seconds.

-l, --exports

List all possible options for -e, --export.

-m MINMOVE, --minmove MINMOVE

Sets a minimum move distance in meters (it may include a fractional decimal part). Motions shorter than this will not be logged.

-r, --reconnect

Retry when GPSd loses the fix. Without -r, gpxlogger would quit in this case.

-V, --version

Dump the package version and exit.


gpsd(8), gps(1) gpspipe(1)


Amaury Jacquot <> & Petter Reinholdtsen <> & Chris Kuethe <>

6 December 2020 The GPSD Project