Я запускаю Ubuntu-gnome 16.04 LTS 4.4.0-62-generic.
Я хотел бы сделать следующее: Запустите либо ...
(a) приложение (GUI) [/path/to/my_app.desktop] или (b) интерактивный скрипт в терминале [например: $ gnome-terminal -x /path/to/script.sh].. каждый раз, когда распознается монтировка любого (USB) устройства.
Выполнение на X-сервере пользователя кажется обязательным, поскольку переменный ввод пользователя требуется в ответ на запущенное приложение / скрипт; он не может просто работать в фоновом режиме.
За последние 2 дня я провел обширные исследования и экспериментировал как с udev-правилами, так и с systemd.services. Моя сложная проблема заключается в том, что любой из последних подходов требует X-аутентификации. Несмотря на то, что есть достоверные (запутанные) способы сделать аутентификацию, мне не нравится идея нарушить врожденную безопасность системы, экспортируя переменные $ XAUTHORITY из корня в пользовательский сеанс ...
Я полагаю, должен быть альтернативный способ сделать следующее:
обнаруживать, когда / если новое (USB) устройство было смонтировано, запускает приложение / скрипт (в терминале) с привилегиями пользователя USER на рабочем столе пользователя (например, Xsession пользователя ?) (необязательно: передать devicename как переменную)(создание файлов с поддержкой монтирования .config ?; org.gnome.desktop.media-handling ?; autostart-script observing / home / $ USERNAME / media .mounts ?; edit / etc / fstab; ...?)
Любые подсказки будут высоко оценены.