The stock gpsd package runs fine on buster. The default is that it only
listens on the loopback interface. I would like it to listen on other
interfaces so that other computers can monitor the GPS data. The gpsd
list has been less than enlightening.

(Warning: long lines ahead. Your mail client may wrap them into utter
unreadability.)

I did find
https://stackoverflow.com/questions/42240757/access-gpsd-port-2947-over-network,
and implemented the first solution, the over-ride in gpsd.socket. That
did not work, in fact local clients were blocked from the daemon as
well as remote clients.

I then backed out those changes, and re-enabled my prior setup:

    [Unit]
    Description=GPS (Global Positioning System) Daemon Sockets

    [Socket]
    ListenStream=/var/run/gpsd.sock
    ListenStream=[::1]:2947
    # ListenStream=127.0.0.1:2947
    ListenStream=0.0.0.0:2947
    SocketMode=0600
    # BindIPv6Only=ipv6-only

    # # per 
https://stackoverflow.com/questions/42240757/access-gpsd-port-2947-over-network
    # # First blank ListenStream clears the system defaults
    # ListenStream=
    # ListenStream=2947
    # ListenStream=/var/run/gpsd.sock


    [Install]
    WantedBy=sockets.target

With the old configuration re-enabled, I can now get a connection from
a remote client. This makes no sense.

I made all changes effective with:

    systemctl daemon-reload
    systemctl restart gpsd

And if necessary, re-plugging the GPS receiver.


In addition, I also found out that running "systemctl disable gpsd"
does not in fact disable it:

    root@hawk:/etc/systemd/system# systemctl stop gpsd ; systemctl disable gpsd 
; systemctl status gpsd
    Warning: Stopping gpsd.service, but it can still be activated by:
      gpsd.socket
    Synchronizing state of gpsd.service with SysV service script with 
/lib/systemd/systemd-sysv-install.
    Executing: /lib/systemd/systemd-sysv-install disable gpsd
    insserv: warning: current start runlevel(s) (empty) of script `gpsd' 
overrides LSB defaults (2 3 4 5).
    insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `gpsd' 
overrides LSB defaults (0 1 6).
    insserv: warning: current start runlevel(s) (empty) of script `gpsd' 
overrides LSB defaults (2 3 4 5).
    insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `gpsd' 
overrides LSB defaults (0 1 6).
    ● gpsd.service - GPS (Global Positioning System) Daemon
       Loaded: loaded (/lib/systemd/system/gpsd.service; disabled; vendor 
preset: enabled)
       Active: active (running) since Thu 2019-09-19 11:23:50 MDT; 515ms ago
     Main PID: 7397 (gpsd)
        Tasks: 1 (limit: 4915)
       Memory: 828.0K
       CGroup: /system.slice/gpsd.service
               └─7397 /usr/sbin/gpsd -Gn

    Sep 19 11:23:50 hawk systemd[1]: Starting GPS (Global Positioning System) 
Daemon...
    Sep 19 11:23:50 hawk systemd[1]: Started GPS (Global Positioning System) 
Daemon.
    root@hawk:/etc/systemd/system# 

This may be due to the fact that I have gpsd clients which will try to
re-connect to gpsd when they lose their connection. Still, why is
systemd re-starting a service I just told it to disable?

-- 
Does anybody read signatures any more?

https://charlescurley.com
https://charlescurley.com/blog/

Reply via email to