Eu escrevi o arquivo 90-usb.rules
em /etc/udev/rules.d/
contendo:
ACTION=="add", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="2008", RUN+="/bin/mkdir /home/pandya/Desktop/testdir"
ACTION=="remove", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="2008", RUN+="/bin/rmdir /home/pandya/Desktop/testdir"
Quando conectei o dispositivo, o udev ACTION=="add"
cria o diretório por meio de RUN+="/bin/mkdir /home/pandya/Desktop/testdir"
(que funciona bem)
MAS, quando eu desconectei o dispositivo, o udev semelhante ACTION=="remove
não remove o diretório por meio deRUN+="/bin/rmdir /home/pandya/Desktop/testdir"
Não há problema /bin/rmdir
porque também verifiquei substituindo-o por outro mkdir
( RUN+="/bin/mkdir /home/pandya/Desktop/testdir2"
), mas isso também não está funcionando.
Então, quero saber por que a ação de remoção não está funcionando? Como faço para corrigir isso?
ENV
está funcionando. Eu tentei oENV{ID_MODEL}
que está funcionando bem. Obrigado (BTW, se você estiver interessado em resposta post, em seguida, pedir-me acrescentarudevadm monitor --property
saída em questão, ou eu vou continuar por resposta?)Respostas:
Conforme essa sugestão, (aqui) comentada por @don_crissti , estou fornecendo uma solução que funcionou para mim.
A seguir, é
udevadm monitor --property
exibida a saída do dispositivo removedor (as linhas KERNEL são ignoradas e somente a última remoção UDEV é anexada abaixo)De cima, usei o Ambiente na minha regra do udev para e agora a regra do udev se torna:
ID_MODEL
=Micromax_A74
ACTION=="remove"
Agora está removendo
testdir
por meio deACTION=="remove"
Portanto, a solução é: Use ambiente adequado, como em
ID_MODEL
vez deATTR{idVendor}
&ATTR{idProduct}
emACTION=="remove"
fonte