![правило udev не работает](https://rvso.com/image/1395270/%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%BE%20udev%20%D0%BD%D0%B5%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82.png)
Я пытаюсь написать правило udev для плагина USB-накопителя. Я хочу сначала смонтировать его, /media
а затем запустить скрипт в /usr/local/bin/script.sh
. Когда я вставляю USB, он даже не монтирует устройство с этим правилом. Однако, если я вручную ввожу часть в RUN в терминал, он монтирует и выполняет скрипт.
В файле правил говорится:
ACTION=="add", KERNEL=="sd[a-z]*", RUN+="/bin/mount -t auto /dev/%k /media/ && /usr/local/bin/script.sh"
Правильный ли это способ выполнить две команды в разделе RUN правила?
решение1
Это неправильный способ выполнения 2 команд. Мне тоже не нравится часть вашего правила, связанная с сопоставлением, но я оставлю ее такой, какая она есть для этого примера. Вы можете сделать:
ACTION=="add", KERNEL=="sd[a-z]*", RUN+="/bin/sh -c '/bin/mount -t auto /dev/%k /media/ && /usr/local/bin/script.sh'"
или
ACTION=="add", KERNEL=="sd[a-z]*", RUN+="/bin/mount -t auto /dev/%k /media/", RUN+="/usr/local/bin/script.sh"
но в вашем случае почему бы вам просто не переместить mount
команду внутрь вашего скрипта?