Você deve usar o caminho completo na chave RUN porque ( man udev
)
No entanto, o próprio script (bash) deve se comportar normalmente, ou seja, você não precisa especificar o caminho.
Estou tentando criar uma regra do udev para desbloquear meu computador quando conecto meu telefone por USB. Eu não pude descobrir que aquela regra estava sendo executada e então eu tentei uma regra muito mais simples. Esta é a regra (anônima):
KERNEL=="sd?1", ATTRS{idVendor}=="****", ATTRS{idProduct}=="****", SYMLINK+="phone", RUN+="touch /home/user/udev.touch"
Eu sei que a regra está sendo executada porque o link phone -> sdc1
está sendo criado, mas o arquivo não está sendo criado. Existe configuração de segurança que eu tenho que habilitar para o arquivo para executar um programa externo?
Você deve usar o caminho completo na chave RUN porque ( man udev
)
No entanto, o próprio script (bash) deve se comportar normalmente, ou seja, você não precisa especificar o caminho.
Eu estava tendo o mesmo problema com o udev. Eu tentei quase tudo para que os scripts funcionassem ao adicionar e remover dispositivos.
Este é o código que eu fiz:
ACTION=="add", KERNEL=="sda1", SUBSYSTEMS=="scsi", ATTRS{model}=="AVV207-0 ", SYMLINK+="Lacie", MODE="0666", RUN+="/bin/sh /usr/bin/udev/lacie-add.sh", OPTIONS="last_rule"
ACTION=="remove", KERNEL=="sda1", RUN+="/bin/sh /usr/bin/udev/lacie-del.sh", OPTIONS="last_rule"
A adição do parâmetro OPTIONS="last_rule"
resolveu o problema.
Eu tive esse problema também, e posso confirmar que a partir de 12.04 você precisa especificar o script bash
completo e bash
completo para o comando EXECUTAR funcionar.