だから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>"