Hi. I'm trying to use gpsd under systemd (spit!). If I run systemd using the standard gpsd.service and gpsd.socket, and -n, the process starts running, but isn't publishing anything on dbus. I know this for sure because `gpxlogger -e dbus` only prints the greeting. If I run `nc 0 2947`, gpsd starts publishing to dbus, and gpxlogger starts printing things.
It sure sounds to me like systemd (spit!) is doing socket activation. In fact I'm sure it is, because if I run gpsd by hand (command as below), it immediately starts publishing to dbus (as verified by gpxlogger).
Trouble is, is that if I remove gpsd.socket from the filesystem and from gpsd.service, it's STILL (somehow) doing socket activation. Or something that looks like socket activation. After I reboot, gpxlogger prints nothing until I connect to port 2947.
How can I get systemd (spit!) to start gpsd as if I was running it by hand?
-- gpsd.service which starts gpsd but isn't publishing to dbus
[Unit]
Description=GPS (Global Positioning System) Daemon
Requires=edge_config_gps_modem.service
After=edge_config_gps_modem.service
[Service]
EnvironmentFile=/var/summit-edge/gpsd.conf
ExecStart=/usr/sbin/gpsd -b -N -n ${GPSTTY}
Restart=on-failure
RestartSec=10s
[Install]
WantedBy=multi-user.target
-- gpsd command which works
/usr/sbin/gpsd -b -N -n /dev/ttyUSB1
-- gpsd version
{"class":"VERSION","release":"3.14","rev":"3.14","proto_major":3,"proto_minor":10}