检测何时连接新的USB设备(即插即用)

时间:2015-03-10 08:44:00

标签: python linux usb debian

使用this answer,我们可以在精确的时刻查询所有连接的USB设备。

我有一个在Linux上运行的Python程序(Debian或RaspBian)执行特定的任务,但我也希望该程序在连接USB设备时监听 ,当发生这种情况时,触发一个特定的动作。

我正在考虑做一个新的thread

while True:
  list_USB_devices()   # using https://stackoverflow.com/a/8265634/1422096
  see_if_new_devices_in_this_list()
  time.sleep(2)        # wait 2 seconds

但我觉得这个解决方案并不优雅。

如果连接了新的USB设备,在Python程序的后台检测哪种更干净的解决方案?

我程序的应用示例:收听是否连接了新的USB-MIDI键盘/设备,如果是,请将其附加rtmidi-python “即插即用! “

1 个答案:

答案 0 :(得分:1)

查看gio库(glib的一部分)。您可以在创建设备时附加手表并连接回调。这样您根本不需要轮询。在设备目录上设置监视,查找文件创建。过滤掉不感兴趣的文件。

您也可以查看'udev'系统本身,并编写一个规则来执行新的usb设备的显示。