Запуск скрипта после загрузки модуля из-за дерева устройств

Поскольку вы ставите метки с помощью tcsh:

set project = $cwd:h:h:t:q

установит $project в хвост головы головы головы текущей директории (или basename dirname dirname). :q quotes результирующий текст, так что никакие дальнейшие расширения (например, разбиение на части или globbing) с ним не выполняются.

pwd - это команда для вывода текущего рабочего каталога. Эта команда не встроена в tcsh. Текущий рабочий каталог находится (что неудивительно или, по крайней мере, менее удивительно, чем в ksh с $PWD) в переменной $cwd в tcsh.

1
14.04.2019, 16:20
1 ответ

Создайте соответствующее ему правило udev.

Не обязательно запускать скрипт "после загрузки модуля" - он работает с конкретным устройством, поэтому лучше запускать его "после обнаружения устройства". Не имеет значения как устройство было обнаружено; пока ядро ​​​​сообщает об этом как о «новом» устройстве, оно будет работать.

Тем не менее, модули присутствуют в /sys точно так же, как и устройства, что означает, что они также могут запускать правила udev и даже создавать для них единицы systemd.device.

Например, чтобы запустить службу сразу после загрузки pwm -sun4i, используйте это правило udev:

ACTION=="add", SUBSYSTEM=="module", KERNEL=="pwl-sun4i", \
    TAG+="systemd", ENV{SYSTEMD_WANTS}+="fixup-pwl.service"

Для запуска простой однократной команды:

ACTION=="add", SUBSYSTEM=="module", KERNEL=="pwl-sun4i", RUN+="/etc/fix-pwl.sh"
1
27.01.2020, 23:41

Теги

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