0

我有一个 Sky 无线传感器节点和一个打印节点输出的脚本。

sudo ./serialdump-linux -b115200 /dev/tmotesky1

如果我在我的电脑检测到节点之前启动此脚本,我会收到以下错误:

/dev/tmotesky1: No such file or directory

但是如果我等待 20 秒,我会错过最初的打印(这很重要)。

有没有办法检测 /dev/tmotesky1 是否存在?就像是

while [ ! -f /dev/tmotesky1 ] ; do sleep 1; print 'Waiting...'; done

提前致谢!

4

1 回答 1

0

您的代码表明您使用的是可以使用热插拔机制的 Linux。

在通用系统上,您可以编写一个 udev 规则(--> 查看udevadmin monitor -e连接设备时会发生什么),该规则启动例如程序或将某些内容写入管道。使用 systemd 时,您可以启动服务(请参阅 参考资料man systemd.device)。

在小型/嵌入式系统上,可以编写自定义/sbin/hotplug程序(设置在 中/proc/sys/kernel/hotplug)而不是使用udev.

于 2013-12-03T20:11:03.077 回答