-
10-
como mencionado por jasonwryan, use numeração alta (90's good). Então você governa não será substituído por outro. -
Use as chaves mínimas exatamente como você realmente precisa. Exemplo,
!=
&GOTO
/LABEL
, em vez disso, use diretamente==
ACTION=="add", KERNEL=="sdb*", RUN+="/usr/bin/mount /dev/sdb1 /media"
-
Seu alvo foi
sdb1
com comando fixo, minimize a correspondência cega usandoKERNEL=="sdb1"
-
Eu acho útil criar uma regra de depuração de sombra, chamei de sombra porque sempre deixo lá no mesmo arquivo, então eu uso quando preciso.
ACTION=="add", KERNEL=="sdb*", RUN+="/bin/sh -c 'echo == >> /home/user/Desktop/udev-env.txt; env >> /home/user/Desktop/udev-env.txt'" #ACTION=="add", KERNEL=="sdb*", RUN+="/usr/bin/mount /dev/sdb1 /media"
Observação:
udev-env.txt
é criado e, em seguida, a regra é acionada de qualquer maneira. Linha==
correspondente a um nó correspondente. O ENV gravado nesse arquivo pode ser uma mistura entre 2 nós ou mais, criado quase no mesmo tempo, é um problema de bufferstdout
. -
Use
udevadm monitor -u
,udevadm test ...
eudevadm trigger ...
para verificar quais regras processaram os eventos. -
Dentro dos scripts, cabe a você fazer o log de depuração e capturar comandos com falha, salvando também o valor de retorno
stdout
&stderr
messages.
Atualização:
-
Referência: udev_237 -
man udev
(Ubuntu_18.04)RUN{type}
Note that running programs that access the network or mount/unmount filesystems is not allowed inside of udev rules, due to the default sandbox that is enforced on systemd-udevd.service.