首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gpsd在设备就绪之前启动

gpsd在设备就绪之前启动
EN

Stack Overflow用户
提问于 2020-07-21 20:24:48
回答 1查看 202关注 0票数 0

我确实有一个在启动时启动并通过gpsd python api连接到gpsd的服务。因此,gpsd将在引导后立即启动。

如果我在系统运行时手动启动任何服务,一切工作正常。但是,当我重新启动系统时,service gpsd status将打印以下内容:

代码语言:javascript
复制
# 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-daemon试图在内核能够创建该设备之前打开/dev/ttyUSB1,然后进入错误状态。

我能做些什么来让它以一种干净的方式运行?

编辑:我目前的工作是在gpsd客户端脚本中进行休眠。

EN

回答 1

Stack Overflow用户

发布于 2020-07-21 20:46:18

我能做些什么才能让它以干净的方式运行?

gpsd服务等待/dev/ttyUSB1

编辑服务:systemctl edit gpsd.service,我认为它应该这样做:

代码语言:javascript
复制
[Unit]
BindsTo=dev-ttyUSB1.device
# or maybe also
After=dev-ttyUSB1.device

一种真正“干净”的方式来精确匹配你的设备,那就是编写udev规则来匹配你的设备,创建一个特殊的/dev/your_device dev条目,然后等待并在你的systemd服务中专门打开那个设备。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63014509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档