Archivo que he escrito 90-usb.rules
en virtud de /etc/udev/rules.d/
que contiene:
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"
Cuando conecté el dispositivo, udev ACTION=="add"
crea un directorio mediante RUN+="/bin/mkdir /home/pandya/Desktop/testdir"
(que funciona bien)
PERO cuando desconecté un dispositivo similar, udev ACTION=="remove
no elimina el directorio por medio deRUN+="/bin/rmdir /home/pandya/Desktop/testdir"
No hay ningún problema /bin/rmdir
porque también lo he comprobado reemplazándolo con otro mkdir
( RUN+="/bin/mkdir /home/pandya/Desktop/testdir2"
) pero esto tampoco funciona.
Entonces, quiero saber que ¿Por qué la acción de eliminación no funciona? ¿Cómo lo soluciono?
ENV
está funcionando. IntentéENV{ID_MODEL}
que funciona bien. Gracias (por cierto, si está interesado en publicar la respuesta, pídame que agregue laudevadm monitor --property
salida en cuestión O ¿continuaré por la respuesta?)Respuestas:
Según esta sugerencia, (aquí) comentado por @don_crissti , estoy proporcionando una solución que funcionó para mí.
A continuación se muestra la salida
udevadm monitor --property
al quitar el dispositivo (las líneas KERNEL se omiten y solo se adjunta la última eliminación de UDEV a continuación)Desde arriba, he usado Environment en mi regla udev para y ahora la regla udev se convierte en:
ID_MODEL
=Micromax_A74
ACTION=="remove"
Ahora se está eliminando
testdir
medianteACTION=="remove"
Por lo tanto, la solución es: utilizar un entorno adecuado, como en
ID_MODEL
lugar deATTR{idVendor}
&ATTR{idProduct}
enACTION=="remove"
fuente