그래서 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
Samsung 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>"