Я могу получить это правило udev в 99-monitor-hotplug.rules для запуска:
ACTION=="change", SUBSYSTEM=="drm", ENV{HOTPLUG}=="1",
RUN+="/usr/local/bin/monitor-hotplug.sh"
Но я не могу заставить его запускать приложение OpenCV GUI в monitor-hotplug.Скрипт sh.
Я в принципе понимаю, что правило udev запускается от имени пользователя root, но независимо от того, какой синтаксис я пытаюсь использовать, я не могу заставить его работать должным образом на уровне пользователя для запуска приложения (сам скрипт для запуска приложения работает нормально).
Я пробовал в RUN этот формат:
su - your_X_user_here -c 'export DISPLAY=:0; bash -c "/path/to/script.sh"'
со скриптом:
#!/bin/bash
#sleep 5
date >> /var/log/opencvlog.log
cd ~/Downloads
./displayimage /home/<username>/Pictures/picture.png
>/var/log/application.log
2>&1
Другая попытка:
Добавление в 99-monitor-hotplug.ru ссылается на текущий синтаксис:
ACTION=="change", SUBSYSTEM=="drm", ENV{DISPLAY}=":0",
ENV{XAUTHORITY}="/home/<username>/.Xauthority" ENV{HOTPLUG}=="1",
RUN+="/usr/local/bin/monitor-hotplug.sh"
, затем в фактическом сценарии:
export DISPLAY=:0
export XAUTHORITY=/home/<username>/.Xauthority
cd ~/Downloads
date
./displayimage /home/<username>/Pictures/picture.png
Ничего из этого не работает, есть мысли о том, как заставить это работать?
Спасибо