可能有1000个或更多的Web资源可以解释在连接USB设备时如何运行应用程序。我正在寻找的是一种技术,可以对存在的两个特定设备的操作进行限定(它们可以按任何顺序和任何时间连接)。我已经考虑过一种方案,其中每个设备都有自己的动作,创建一个独特的瞬态文件,然后检查其他设备是否已创建其文件。这似乎很麻烦,可能很容易发生比赛。有没有更好的方法来解决这个问题?
答案 0 :(得分:1)
首先,弄清楚如何使用您提到的资源连接USB设备时触发程序。然后在C中编写一个程序,使用libusb或libudev来检查两个设备是否存在。如果找到两个设备,则触发您想要发生的任何操作。
答案 1 :(得分:0)
在较新的Linux发行版中调用来自udev规则的长时间运行的进程非常困难,但是将这个战斗的细节留在一边我接受了Davids的建议。两个udev规则都调用相同的Python脚本,该脚本检查两个设备并启动应用程序(如果存在)。防止脚本的两个并发实例之间的比赛需要一些工作,但我最后使用/ var / run / myapp下的文件重命名作为互斥锁。仍然需要一个“删除”规则来杀死进程,但这是更容易的部分。