Не удается выполнить скрипт из правила udev [закрыто]

Я пытаюсь создать правила udev на Ubuntu 17.10. После нескольких часов тестирования я отчаянно закончил следующие правила в /etc/udev/rules.d/98-intelpwm.rules:

(он предназначен только для тестирования!)

ACTION=="add", RUN+="/home/user/intel_gpu/test.sh"

Сам скрипт:

$ ll /home/user/intel_gpu/test.sh -rwxrwxrwx 1 user user 56 Oct 22 01:38 /home/user/intel_gpu/test.sh* #!/bin/sh /bin/echo 1 >> /home/user/intel_gpu/test.output

Когда я запускаю udevadm test /module/usb_storage, я вижу, что правило срабатывает, но test.output не создается (или если я создаю его вручную, он не обновляется). [ ! d4] calling: test version 234 This program is for debugging only, it does not run any program specified by a RUN key. It may show incorrect results, because some values may be different, or not available at a simulation run. === trie on-disk === tool version: 234 file size: 9138024 bytes header size 80 bytes strings 1910832 bytes nodes 7227112 bytes Load module index Failed to read $container of PID 1, ignoring: Permission denied Found container virtualization none. timestamp of '/etc/systemd/network' changed timestamp of '/lib/systemd/network' changed Parsed configuration file /lib/systemd/network/99-default.link Created link configuration context. timestamp of '/etc/udev/rules.d' changed Reading rules file: /lib/udev/rules.d/39-usbmuxd.rules Reading rules file: /lib/udev/rules.d/40-usb-media-players.rules ... Reading rules file: /etc/udev/rules.d/98-intelpwm.rules Reading rules file: /lib/udev/rules.d/99-systemd.rules rules contain 393216 bytes tokens (32768 * 12 bytes), 35397 bytes strings 27571 strings (233697 bytes), 24356 de-duplicated (201516 bytes), 3216 trie nodes used value '[dmi/id]sys_vendor' is 'ASUSTeK COMPUTER INC.' value '[dmi/id]sys_vendor' is 'ASUSTeK COMPUTER INC.' RUN '/home/user/intel_gpu/test.sh' /etc/udev/rules.d/98-intelpwm.rules:1 ACTION=add DEVPATH=/module/usb_storage SUBSYSTEM=module USEC_INITIALIZED=4988363806 run: '/home/user/intel_gpu/test.sh' Unload module index Unloaded link configuration context.

Что мне не хватает?

2
задан 16 April 2018 в 22:31

2 ответа

Чтобы применить правило udev, вы должны использовать udevadm trigger. Кроме того, вы можете указать udevadm trigger, какое действие вызывать.

Если вы только запустили udevadm trigger, все устройства будут запущены, и будут выполняться некоторые add действия, которые вызовут ваш скрипт, потому что он действителен для всех устройств. Если вы хотите запустить правило udev для определенного уже имеющегося устройства, возможно, вам придется добавить параметр -c, --action=ACTION.

udevadm trigger --action=add /sys/<path-to-your-device>

Я настоятельно рекомендую ограничить совпадения ваше udev правило, потому что в данный момент оно соответствует любому устройству, и ваш скрипт будет выполняться несколько раз.

0
ответ дан 18 July 2018 в 04:52

Чтобы применить правило udev, вы должны использовать udevadm trigger. Кроме того, вы можете указать udevadm trigger, какое действие вызывать.

Если вы только запустили udevadm trigger, все устройства будут запущены, и будут выполняться некоторые add действия, которые вызовут ваш скрипт, потому что он действителен для всех устройств. Если вы хотите запустить правило udev для определенного уже имеющегося устройства, возможно, вам придется добавить параметр -c, --action=ACTION.

udevadm trigger --action=add /sys/<path-to-your-device>

Я настоятельно рекомендую ограничить совпадения ваше udev правило, потому что в данный момент оно соответствует любому устройству, и ваш скрипт будет выполняться несколько раз.

0
ответ дан 24 July 2018 в 18:11
  • 1
    Дело в том, что сценарий не запускается вообще (или он вызван и не с ошибкой - как это понять?). Я попытался вставить палку usb, файл test.output не обновлен. Я понимаю, что это супер глобальное правило, пока я просто хочу доказать, что он работает. – Aleksandr 22 October 2017 в 20:27
  • 2
    Я также попробовал udevadmin trigger..., как было предложено, увидеть событие в udevadm monitor, но файл test.output не обновляется. – Aleksandr 22 October 2017 в 20:40

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

Похожие вопросы: