Necesito hacer algunas acciones cuando se quita/agrega un dispositivo USB específico. Necesito una respuesta rápida del orden de milisegundos.
¿Cómo puedo hacer esto en un script de shell?
Respuesta aceptada:
Suponiendo que está utilizando una distribución de Linux compatible con udev y tiene acceso de root/administrador, entonces puede usar las reglas de udev para activar operaciones específicas.
Si el siguiente ejemplo se agrega a un /etc/udev/rules.d/example.rules luego ejecutará el script especificado cuando se agregue un dispositivo de bloque con los parámetros especificados.
ACTION=="add", SUBSYSTEM=="block", ATTRS{manufacturer}=="HitachiGST", ATTRS{serial}=="31001206110000000000", RUN+="/a/script/to/run.sh"
Esa regla en particular se ejecuta cuando se inserta mi disco duro USB y se conecta al sistema de bloques. Es bastante fácil modificar las reglas para que coincidan con un evento USB de bajo nivel específico.
Descubrí que la página wiki de Debian UDEV y el sitio de escritura de reglas de Udev son muy útiles para obtener las reglas correctas para mi situación.