O Udev não corresponde às variáveis ENV ao remover

2

Como provavelmente milhares de pessoas, eu queria ter um script especial em execução quando o stick USB "this one" estiver inserido. Mas também quero ter algo funcionando quando for removido - isso é dor no rabo. Eu li sobre problemas com remoção de correspondência correta aqui: link

Minhas regras são:

ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{model}=="USB2FlashStorage", ATTRS{vendor}=="Ut165   ", ENV{UDISKS_IGNORE}="1", ENV{PX2_KEY}="1", SYMLINK+="key%n", OWNER="root", RUN+="/root/bin/key.sh add"
ACTION=="remove", SUBSYSTEM=="bsg", ENV{PX2_KEY}=="1", RUN+="/root/bin/key.sh del"

Adicione um funciona perfeitamente mas remova nada. Tentei usar com e w/o SUBSYSTEM (usb, block, scsi) , com ou sem ENV{ID_MODEL}, ID_VENDOR, ID_SERIAL, ID_F..._POOP correto e nada. No estágio atual, você pode ver que estou criando o próprio symlink (chave% n) e tentei usá-lo também com

KERNEL=="key*"

sem sorte! Você provavelmente também notou que eu estou definindo minha própria variável (PX2_KEY) e tentando combinar com isso e ... sem sorte também ... O que estou fazendo errado ... Talvez eu esteja perdendo algo na ordem das regras, mas fiz Tente fazer o meu arquivo de regras 10-local, bem como 99-local - não funcionou. Adicione trabalhos, remova não. bsg está definido porque este é o primeiro subsistema onde vejo que o udev mostra a existência de PX2_KEY em

udevadm monitor --udev --environment

quando a remoção é feita. Pensei que talvez eu precisasse pegar a primeira ocorrência. Mas também tentei diferente.

    
por Px2 14.03.2017 / 07:27

1 resposta

1

Funciona.

Eu não sou muito inteligente. A questão era que no script que eu queria executar, eu corro zenity com --display=:0 como root tentando escrever uma mensagem para um usuário diferente.

O script terminou antes de qualquer parte "logging" ...

    
por Px2 14.03.2017 / 08:04