所以我尝试使用 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>"