Ubuntu 20.04 LTS; gpsd 3.20 (installed from the
I have sometimes found that gpsd is not running. When I
investigated, I discovered that the socket file
(/var/run/gpsd.sock) was owned by root, instead of by gpsd --
evidently meaning that gpsd would not start because it couldn't
acquire the socket.
I also determined that the /var/systemd/system/gpsd.socket
configuration file had reverted to its original default contents:
Description=GPS (Global Positioning System) Daemon Sockets
# To allow gpsd remote access, start gpsd with the -G option and
# uncomment the next two lines:
I had previously added the line "SocketUser=gpsd", and also
commented out the second ListenStream line (since I am not using
IPv6 on the system in question). But the original version of the
configuration file reappeared from somewhere.
This has happened at least twice on this particular computer.
I edited the gpsd.socket file back the way it was previously, did
"systemctl daemon-reload" to reread the configuration, and removed
the /var/run/gpsd.sock file, and after doing all this I was able
to restart the gpsd service.
Any idea what might be going on here, and how I can keep the
gpsd.socket contents from being reverted?
Everything you describe and the problem you are having is specific to systemd and your Linux distribution. The GPSd project does not ship anything for managing GPSd from systemd. The files you mention were created & packaged by the packager for your Linux distribution. Check with Ubuntu about what might have caused their config files to be reverted. Maybe an update from the Linux distribution overwrote your changes?
BTW - you’d be better off *not* using GPSd from the distribution package. GPSd is updated frequently and GIT head is generally stable (due to CI), and always has newer features & bug fixes that are not in the packaged/Linux distribution version (not updated frequently).