相关疑难解决方法(0)

如何在插入 USB 设备时执行 shellscript

我想在我的 Linux 机器上插入设备时执行脚本。例如,xinput在鼠标或某个驱动器上的备份脚本上运行。

我看过很多关于这方面的文章,最近一次是这里这里。但我就是无法让它工作。

下面是一些试图获得至少某种响应的简单示例。

/etc/udev/rules.d/test.rules

#KERNEL=="sd*", ATTRS{vendor}=="*", ATTRS{model}=="*", ATTRS{serial}=="*", RUN+="/usr/local/bin/test.sh"
#KERNEL=="sd*", ACTION=="add", "SUBSYSTEM=="usb", ATTRS{model}=="My Book 1140    ", ATTRS{serial}=="0841752394756103457194857249", RUN+="/usr/local/bin/test.sh"
#ACTION=="add", "SUBSYSTEM=="usb", RUN+="/usr/local/bin/test.sh"
#KERNEL=="sd*", ACTION=={add}, RUN+="/usr/local/bin/test.sh"
KERNEL=="sd*", RUN+="/usr/local/bin/test.sh"
KERNEL=="*", RUN+="/usr/local/bin/test.sh"
Run Code Online (Sandbox Code Playgroud)

/usr/local/bin/test.sh

#!/usr/bin/env bash
echo touched >> /var/log/test.log

if [ "${ACTION}" = "add" ] && [ -f "${DEVICE}" ]
then
    echo ${DEVICE} >> /var/log/test.log
fi
Run Code Online (Sandbox Code Playgroud)

规则文件夹由监视inotify并应立即激活。我不断地重新插入我的键盘、鼠标、平板电脑、记忆棒和 USB 驱动器,但没有。没有触及日志文件。

现在,至少知道某些事情正在起作用的最简单方法是什么?使用有效的方法比使用无效的方法更容易。

linux bash ubuntu udev

40
推荐指数
3
解决办法
7万
查看次数

如何设置udev设备连接触发的xinput属性?

我试图xinput在连接 USB 输入设备时设置其属性。我见过需要脚本在后台运行并轮询 USB 设备的解决方案,但我想找到一种触发方法,而不是涉及用户空间轮询的方法。

我尝试创建一个在设备连接上运行脚本的规则,但触发规则时udev,连接的设备似乎尚不可见。这似乎是事件的恒定顺序,而不是竞争条件,因为向脚本添加命令也会延迟设备在 中列出。xinputudev addsleepxinput list

有没有可靠的方法来设置xinput设备连接时的属性?

udev xinput usb-device

8
推荐指数
1
解决办法
2842
查看次数

标签 统计

udev ×2

bash ×1

linux ×1

ubuntu ×1

usb-device ×1

xinput ×1