У меня есть служба, которая запускается при загрузке и подключается к gpsd
через gpsd
API Python. Таким образом, gpsd
запустится сразу после загрузки.
Если я запускаю любую службу вручную во время работы системы, все работает нормально. Но когда я перезагружу систему, service gpsd status
напечатает это:
# service gpsd status
● gpsd.service - GPS (Global Positioning System) Daemon
Loaded: loaded (/lib/systemd/system/gpsd.service; indirect; vendor preset: enabled)
Active: active (running) since Tue 2020-07-21 08:15:47 EDT; 2min 47s ago
Process: 5659 ExecStart=/usr/sbin/gpsd $GPSD_OPTIONS $DEVICES (code=exited, status=0/SUCCESS)
Main PID: 5690 (gpsd)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/gpsd.service
└─5690 /usr/sbin/gpsd /dev/ttyUSB1
Jul 21 08:15:47 nvidia-desktop systemd[1]: Starting GPS (Global Positioning System) Daemon...
Jul 21 08:15:47 nvidia-desktop systemd[1]: Started GPS (Global Positioning System) Daemon.
Jul 21 08:15:47 nvidia-desktop gpsd[5690]: gpsd:ERROR: SER: device open of /dev/ttyUSB1 failed: No such file or directory - retrying read-only
Jul 21 08:15:47 nvidia-desktop gpsd[5690]: gpsd:ERROR: SER: read-only device open of /dev/ttyUSB1 failed: No such file or directory
Jul 21 08:15:47 nvidia-desktop gpsd[5690]: gpsd:ERROR: /dev/ttyUSB1: device activation failed.
Jul 21 08:15:47 nvidia-desktop gpsd[5690]: gpsd:ERROR: /dev/ttyUSB1: activation failed, freeing device
gpsd
просто не работает.
Я предполагаю, что gpsd
-демон пытается открыть /dev/ttyUSB1
до того, как ядро сможет создать это устройство, а затем окажется в состоянии ошибки.
Что я мог сделать, чтобы заставить его работать в чистом виде?
РЕДАКТИРОВАТЬ: моя текущая работа - это сон в клиентском сценарии gpsd
.