Как я могу сообщить скрипту, вызванному из правила udev, устройства, которое сработало?
У меня есть правило Udev
ACTION=="add", SUBSYSTEM=="block", KERNEL=="vd[c-z]", ENV{DEVICE_NAME}="KERNEL" RUN+="/usr/local/bin/udevtest"
где устройства vd[cz] вызывают правило и вызывают мой скрипт. Я пытаюсь передать точное имя устройства, которое запускает сценарий, с помощью переменной среды $DEVICE_NAME, но кажется, что оно не определяется вызываемым сценарием.
Как это сделать?
Я пытаюсь написать это для Debian и Ubuntu, поэтому не думаю, что можно использовать udisks2.
1 ответ
Решение
Вместо того, чтобы использовать переменную среды, можете ли вы передать ее в сценарий в качестве аргумента? Что-то вроде:
RUN+="/usr/local/bin/udevtest %k"
RUN+="/usr/local/bin/udevtest $KERNEL"
Предполагая, что ваш скрипт может быть изменен для обработки аргументов