首页 > 解决方案 > Linux:连接时的 USB 触发器仅在首次连接时触发。需要 `systemd --user damon-reload` 再次激活

问题描述

问题:

我有一个平板电脑。手写笔。每当我通过 USB 连接平板电脑时,我都希望它进行一些配置。我快到了,我的配置脚本在 systemctl 中注册为oneshot服务,并且在我第一次连接平板电脑时触发该服务。但是,后续连接不会触发该服务:换句话说,如果我断开平板电脑并重新连接它,则不会触发触发器。systemctl --user daemon-reload我必须在触发器再次激活之前做一个。我错过了什么?

系统: 操作系统:Ubuntu 20.04.1 LTS x86_64 内核:5.4.0-52-lowlatency

这是我的触发器:

文件名:/etc/udev/rules.d/10-wacom.rules

ACTION=="add", SUBSYSTEMS=="usb", 
ATTR{idVendor}=="256c", 
ATTR{idProduct}=="006d", 
MODE="0666", 
TAG+="systemd", 
ENV{SYSTEMD_USER_WANTS}="tablet-conf.service"

(实际文件中没有换行符,我只是将它们放入以便于阅读)

这是我的服务定义:

文件名:~/.config/systemd/user/tablet-conf.service

[Service]
Type=oneshot
ExecStart=/usr/local/bin/huion-inspiroy-950d-connect.sh


[Install]
WantedBy=xsession.target

这是我的配置脚本

文件名:~/bin/system/devices/huion-inspiroy-950d-connect.sh 通过符号链接调用/usr/local/bin/huion-inspiroy-950d-connect.sh

#!/bin/bash
touch /home/esm/bin/system/devices/a-connected-waiting
sleep 2
touch /home/esm/bin/system/devices/a-connected-waited
xsetwacom set "HID 256c:006d stylus" MapToOutput HEAD-0 2>> /home/esm/bin/system/devices/a-configured
xsetwacom set "HID 256c:006d stylus" rotate HALF 2>> /home/esm/bin/system/devices/a-configured

(如您所见,我在配置过程中创建了一些空文件并记录了 som 信息。所有这些当然不是必需的,但是当我弄清楚如何使触发器工作时,我需要它。我会删除它,一旦我弄清楚如何让整个事情表现出来)

所以问题是...

我怎样才能实现在每个平板电脑连接上触发触发器,而不仅仅是第一个连接?

标签: linuxusbsystemd

解决方案


推荐阅读