Como posso executar um comando automaticamente com o diconnect USB?

1

Estou executando o Ubuntu 12.04 a partir de uma unidade flash e estou em uma situação em que a unidade USB em que está sendo executado (juntamente com outros dispositivos USB) pode ser desconectada com muita facilidade (portas inoperantes / dobradas). Qual seria a maneira mais fácil de executar um comando (nesse caso, um script que finaliza a execução de servidores e dispara um alarme) quando algum dispositivo USB, incluindo a unidade em que está sendo executado, se desconecta? Obrigado!

    
por stere0123 28.04.2014 / 17:41

1 resposta

1

Você precisa fazer uma regra do udev. Para fazer isso, você deve criar um arquivo como este:

$ sudo vim /etc/udev/rules.d/.rules

O nome pode ser o que você quiser, desde que termine com .rules

Agora aqui está como você escreve uma regra (é uma que eu uso):

ACTION=="add", ENV{ID_FS_UUID}=="E040-9945", RUN+="/bin/su adrien -c 'export DISPLAY=:0 && /usr/bin/gnome-screensaver-command -d'"
ACTION=="remove", ENV{ID_FS_UUID}=="E040-9945", RUN+="/bin/su adrien -c 'export DISPLAY=:0 && /usr/bin/gnome-screensaver-command -l'"

Primeiro, você deve especificar as condições para acionar a regra. Aqui eu uso a ação e o UUID da minha chave usb. Então eu especifico um script para executar (Este um bloqueio / desbloquear minha tela). (Você pode colocar quantos RUN +="" forem necessários.)

No seu caso, não coloque a condição UUID, mas algo como DRIVERS == "usb-storage"

Para descobrir qual propriedade verificar, conecte uma chave usb, digamos que vá para / dev / sdb e execute:

$ udevadm info -a -p /sys/block/sdb | grep usb
    
por Adrien Horgnies 28.04.2014 / 18:00