I have the GPS daemon running as user gpsd:
/usr/sbin/gpsd -N /dev/ttyUSB0 /dev/ttyUSB0
I have gpxlogger running as root:
gpxlogger -d -f /data/%Y%m%d-%H%M%S.gpx
Initially, all what gpxlogger writes is the gpx preamble, but no actual fixes.
gpxlogger starts to log actual fixes, as soon as I run another gpsd client like 'cgps -d' or 'gpsmon'. When this other gpsd client ends, gpxlogger stops to log fixes after some time.
It appears as if gpxlogger is not a "sufficient" client "to make" gpsd provide actual fixes.
For now my workaround is to autostart "cgps -s" in a terminal.