Я пытался получить свое правило udev работать в течение нескольких часов теперь, и оно просто не работает. Правило, как предполагается, запускает новый терминал и запускает мой скрипт. Я попытался запустить скрипт от правила udev открыть новый терминал сначала, но также и выполнить новый терминал прямо от правила udev. Ни один не работает. Достаточно странно выполнение mkdir действительно работает с помощью тех же правил, который приводит меня полагать, что я делаю что-то не так в другом месте.
Это - мое правило udev:
ACTION=="add", SUBSYSTEM=="usb", DRIVER=="usb", RUN+="/usr/bin/gnome-terminal -x /home/[user]/Desktop/script.sh"
Рабочий хвост-f/var/log/syslog показывает сценарий, переставший работать с кодом выхода 1, который действительно не помогает. Любые предложения очень ценились бы.
Вы ничего не видите, потому что udev
выполнения в контексте, который не имеет $DISPLAY
переменный набор, который обязателен для чего-то как gnome-terminal
, чтобы знать, как связаться с X-сервером. Можно добавить --display=:0
к командной строке в правиле или записать сценарий обертки, который устанавливает DISPLAY
и затем звонит gnome-terminal
.