1

I've got a udev rule

ACTION=="add", SUBSYSTEM=="block", KERNEL=="vd[c-z]", ENV{DEVICE_NAME}="KERNEL" RUN+="/usr/local/bin/udevtest"

where devices vd[c-z] trigger the rule and call my script. I am trying to pass the exact name of the device that triggers the script with the $DEVICE_NAME environment variable but it doesn't seem to be being picked up by the called script.

How is this done?

I am trying to write this for Debian and Ubuntu, so I don't think udisks2 can be used.

Andrew
  • 142
  • 2
  • 9

1 Answers1

3

Instead of using an environment variable, can you pass it in to the script as an argument? Something like:

RUN+="/usr/local/bin/udevtest %k"
RUN+="/usr/local/bin/udevtest $KERNEL"

Assuming your script can be modified to handle arguments

jjv
  • 226
  • 1
  • 3
  • YES. I should've read man 5 udev, the section that starts with: `The NAME, SYMLINK, PROGRAM, OWNER, GROUP, MODE and RUN fields support simple string substitutions.` – Andrew Nov 21 '13 at 01:15