使用 udev 弹出时获取 USB 的 UUID

使用 udev 弹出时获取 USB 的 UUID

0 反对 收藏 我有一个 python 脚本来获取插入 usb 的详细信息。我正在使用 udev 库来管理连接的设备。

当我从系统中移除 USB 设备时,我想获取其设备 ID。

如果我移除设备而不卸载,我将使用 device.get('ID_FS_UUID') 获取设备 ID。

但是如果我在卸载后移除设备,那么我就无法使用上述代码获取设备 ID。我得到的值为 None。

我有一个 udev 监视观察员类来检测 usb 设备的添加和删除。

*从 pyudev.glib 导入 GUDevMonitorObserver 作为 MonitorObserver

    def device_event(observer, action, device):
        if action == 'add':
            DeviceListener.deviceAdded(device)
        else:
            DeviceListener.deviceRemoved(device)*

根据事件它将调用相应的方法。

def deviceRemoved(device):
print "REMOVED DEVICE IS="+device.get('ID_FS_UUID')

如果我删除设备而不卸载,我会得到以下输出,REMOVED DEVICE IS=5F96-58D0

如果我卸载并移除设备,我将获得以下输出,REMOVED DEVICE IS=None

在第二种情况下,请帮我找到设备 ID。

提前致谢...

答案1

据我所知,无法从 SYSFS 等实时状态树获取此类信息。这些信息可通过 clean umount 清除。

对我来说,最好的方法是保留有关插入设备的此类信息的副本,然后在拔下设备时检查它们。

相关内容