我正在运行一个在启动时需要设备路径的守护程序。此设备已连接到 USB 总线,但有时会断开 USB 并重新连接(连接器松动或硬件崩溃,尚未发现问题),但随后设备获得了另一个名称,例如/dev/ttyACM0
变为/dev/ttyACM1
.
它是一个虚拟串行端口,可从 AIS 接收器(感兴趣的有 Quark-elec QK-A022)输出 NMEA 数据。
我很确定只有一个设备会同时连接到 USB。
当系统中插入特定类型的设备时,有没有办法使用 systemd 启动/重新启动服务?我注意到systemctl list-units --type=device
哪个列出了设备,所以我很有希望,但到目前为止我发现的每个示例都是基于显式启动 servicename@device。
root@ais:/home/pi# systemctl list-units --type=device | fgrep STM
sys-devices-platform-soc-3f980000.usb-usb1-1\x2d1-1\x2d1.2-1\x2d1.2:1.0-tty-ttyACM1.device loaded active plugged STM32F407
我很确定只有一个设备会同时连接到 USB。