插入 USB 后启动带有 udev 规则的 GUI 应用程序?

插入 USB 后启动带有 udev 规则的 GUI 应用程序?

所以我尝试使用 udev 运行 gui 应用程序,但成功率为 0,

我在某处读到我必须找到 Xauthority 文件,并将显示变量放入脚本中,这是正确的吗?如果是,有人可以编写示例脚本吗?

先感谢您 :)

我当前的设置:

SUBSYSTEMS=="usb", ATTRS{idProduct}=="1337", ACTION=="add", RUN+="/usr/local/bin/New.sh"

脚本New.sh

#!/bin/sh
./New2.sh & exit

脚本New2.sh

#!/bin/sh
vlc v4l2:///dev/video0

答案1

按照我针对三星 Android 设备的工作解决方案...

像这样编写一个脚本/etc/udev/rules.d

#!/bin/bash

su <NON_ROOT_USER> -c <YOUR_GUI_APPLICATION>

运行udevadm monitor -e以获取您的设备路径(例如/devices/pci0000:00/0000:00:08.1/0000:04:00.3/usb1/1-2)并记下它。

运行udevadm info -ap <YOUR_DEVICE_PATH>以获取要放入 udev 配置文件夹中的规则。例如

  ACTION=="add" \
, SUBSYSTEM=="usb" \
, ENV{DEVTYPE}=="usb_device" \
, ATTRS{idVendor}=="04e8" \
, ATTRS{idProduct}=="6860" \
, ATTR{product}=="SAMSUNG_Android" \
, ATTR{serial}=="R58MC3542ZX"

编写一个脚本,命名50-my-android-device.rules/etc/udev/rules.d

  ACTION=="add" \
, SUBSYSTEM=="usb" \
, ENV{DEVTYPE}=="usb_device" \
, ATTRS{idVendor}=="04e8" \
, ATTRS{idProduct}=="6860" \
, ATTR{product}=="SAMSUNG_Android" \
, ATTR{serial}=="R58MC3542ZX" \
, ENV{DISPLAY}=":0.0" \
, RUN+="/etc/udev/rules.d/<MY_RUNNABLE.SCRIPT>"

相关内容