Как я могу сообщить скрипту, вызванному из правила 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"

Предполагая, что ваш скрипт может быть изменен для обработки аргументов

Другие вопросы по тегам