Você precisa garantir o seguinte:
- Os caminhos no comando
RUN
devem ser absolutos
- O arquivo precisa ser executável
- O ambiente
PATH
é limitado dentro da execução do seu comando
Adicione primeiro este arquivo de script a /lib/udev/touch.sh
vim /lib/udev/touch.sh
nesse arquivo, escreva:
#!/bin/bash
touch /tmp/test
torne-o executável:
chmod +x /lib/udev/touch.sh
e altere seu arquivo de regras para:
ACTION=="add", SUBSYSTEMS=="usb", RUN+="/lib/udev/touch.sh"
recarregue suas regras do udev
udevadm control --reload-rules
Isso lerá suas regras em /lib/udev/rules.d/*
novamente. As alterações não serão aplicadas até agora.
Observe que o udev executa seu script com um ambiente PATH
reduzido. Você precisa garantir que qualquer binário que não esteja nos caminhos configurados tenha que ser acessado com um caminho completo. Você também pode estender o ambiente PATH
dentro do seu script.
Verifique qual caminho está definido registrando a saída set
em um arquivo de log do seu script de wrapper:
set >>/tmp/udev-env-test
Pode parecer assim:
PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'