Parece que as variáveis ENV
são bastante livres e vinculadas para dispositivos . As únicas restrições impostas são que nenhuma dessas chaves pode ser usada : ACTION, SUBSYSTEM, DEVTYPE, MAJOR, MINOR, DRIVER, IFINDEX, DEVNAME, DEVLINKS, DEVPATH, TAGS.
Além disso, a interpretação das variáveis de ambiente é deixada para outras regras e programas. Use grep -rni 'ENV{' /{lib,etc}/udev/rules.d
para encontrar os consumidores e fornecedores de variáveis de ambiente. Em seu caso específico REMOVE_CMD
, o arquivo /lib/udev/rules.d/50-udev-default.rules
é responsável por manipular esta ação:
# run a command on remove events
ACTION=="remove", ENV{REMOVE_CMD}!="", RUN+="$env{REMOVE_CMD}"
ACTION=="remove", GOTO="default_end"
Com este comando, você pode encontrar mais variáveis de ambiente:
grep -hrPo 'ENV{\K[^}]*(?=}=[^=])' /{etc,lib}/udev/rules.d | sort -u
Como exemplo, considere o arquivo 95-upower-hid.rules
. Este arquivo define a variável UPOWER_BATTERY_TYPE
. Nenhuma outra regra usa esse arquivo, mas o daemon UPower se registra no udevd para adicionar / alterar / remover eventos. Então, quando ocorre um evento, o UPower consulta especificamente o dispositivo para essa variável, a fim de determinar se deve tratar como mouses comuns, UPS ou dispositivos receptores Unifying.
Outro exemplo (mais útil) é a variável de ambiente UDISKS_IGNORE
, que pode ser usada para sugerir navegadores de arquivos gráficos para ocultar o dispositivo na lista de unidades. Especificamente para udisks2, você pode encontrar as variáveis em udisks (8) página de manual (localizada usando man -K UDISKS_IGNORE
).