LINUX.ORG.RU

/etc/udev/rules.d/90-my-keyboard.rules

SUBSYSTEM=="usb", ATTR{idVendor}=="XXXX", ATTR{idProduct}=="YYYY", TAG+="systemd", ENV{SYSTEMD_WANTS}+="foobar.service"

Где XXXX:YYYY — ID клавиатуры (узнать через lsusb), а foobar.service — сервис, требуемый к запуску.

После создания этого файла нужно заставить udev перечитать правила: udevadm control --reload.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

Ну а после создания foobar.service, естественно, нужно заставить systemd перечитать юниты: systemctl daemon-reload.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

Можно еще добавить в начало правила ACTION=="add" - тогда ACTION=="change|remove" будет игнорироваться (в стандартных правилах принято фильтровать события по ACTION+SUBSYSTEM).

mtk
()
Ответ на: комментарий от mtk

Это prior art. Насколько я понял, если действие правила состоит только в systemd-специфичных операциях (SYSTEMD_WANTS, SYSTEMD_ALIAS), то ACTION=="add" опускают.

В подтверждение — см. /usr/lib/udev/rules.d/99-systemd.rules:

SUBSYSTEM=="printer", TAG+="systemd", ENV{SYSTEMD_WANTS}+="printer.target"
SUBSYSTEM=="usb", KERNEL=="lp*", TAG+="systemd", ENV{SYSTEMD_WANTS}+="printer.target"
...и так далее.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.