Я искал /lib/udev/rules.d
примеры связанных с диском правил. В системе Ubuntu один файл правил предоставляет переменную среды, ID_FS_UUID_ENC
которую вы можете использовать в собственных файлах правил.
Таким образом, я поместил файл пользовательских правил в /etc/udev/rules.d/foodevice.rules
. Поскольку перед номером нет префикса, он наконец запускается udev. Кстати, демон udev следил /etc/udev/rules.d
за изменениями, так что вам не нужно перезапускать его при изменении файла.
Содержание /etc/udev/rules.d/foodevice.rules
это:
ACTION=="add", KERNEL=="sd*[!0-9]", ENV{ID_FS_UUID_ENC}=="FFFF-AAAF",
RUN+="/usr/bin/sudo -u juser /home/juser/path/script.sh"
(это одно правило - вы должны удалить символ новой строки после предложения ENV, потому что у udev нет механизма продолжения строки)
Программа, запущенная udev, блокирует демона, поэтому она не должна работать долгое время. Я решил это через at
- то есть путем отсоединения от процесса, выполняющего реальную работу:
$ cat /home/juser/path/script.sh
#!/bin/sh
echo ~/path/mountcopystuff.sh | at now