Obtendo o UUID de um usb ao ejetar usando o udev

1

0 baixo voto favorito Eu estou tendo um script python para obter detalhes plugados em usb. Estou usando a biblioteca do udev para gerenciar os dispositivos conectados.

Eu quero obter o ID do dispositivo USB quando removê-lo do sistema.

Se eu remover o dispositivo sem desmontar, estou recebendo o ID do dispositivo usando device.get ('ID_FS_UUID').

Mas se eu remover o dispositivo após a desmontagem, não receberei o ID do dispositivo usando o código acima. Estou obtendo valor como Nenhum.

Eu tenho uma classe de observador do monitor do udev para detectar a adição e a remoção do dispositivo usb.

* from pyudev.glib import GUDevMonitorObserver como MonitorObserver

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

com base no evento que irá chamar método correspondente.

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

Se eu remover o dispositivo sem desmontar, estou recebendo a seguinte saída, REMOVED DEVICE IS = 5F96-58D0

Se eu desmontar e remover o dispositivo que estou recebendo a seguinte saída, REMOVED DEVICE IS = None

Por favor, ajude-me a encontrar o ID do dispositivo no segundo caso.

Obrigado antecipadamente ...

    
por pmattt 11.10.2017 / 14:22

1 resposta

0

AFAIK, Não é possível obter tais informações de uma árvore de estados ativos como o SYSFS. Aqueles inf são limpos com umount limpo.

A melhor maneira para mim é manter uma cópia dessas informações sobre os dispositivos conectados e, em seguida, verificá-los quando um dispositivo for desconectado.

    
por user.dz 03.04.2018 / 12:51