Пример скрипта error.sh
:
#! /bin/bash
zenity --error --text='Something very bad has happened!'
Мой incron-config
:
~/Documents IN_MOVED_TO ~/scripts/error.sh
Если я запускаю error.sh
в терминале графический интерфейс пользователя, но не в вышеупомянутом сценарии incron.
Как я могу сделать zenity, чтобы открыть этот диалог, когда я перемещаю файл в папку «Документы»?
Чтобы запустить команду с графическим интерфейсом на cron, вы должны указать cron, какой дисплей должна использовать программа. Для этого вы используете: экспорт DISPLAY =: 0
Для уведомления zenity каждые 30 минут отредактируйте с помощью
crontab -e
и установите задание, например:Подробно как: ссылка
источник
Есть и другое возможное решение, если вы хотите, чтобы оно работало независимо от имени пользователя, путем поиска активного пользователя дисплея X с помощью ConsoleKit (команда
ck-list-sessions
). Предполагая, что приведенный ниже скрипт запущен от имени пользователя root, он покажет сообщение zenity текущему активному пользователю на вашем компьютере:Небольшой скрипт awk предназначен только для анализа ck-list-session и вывода имени пользователя и отображения активного пользователя (может также потребоваться, чтобы это было локальное соединение, если вы хотите исключить пользователей ssh -X, если хотите).
(Я использую это в сценарии резервного копирования, который запускается при подключении USB-накопителя.)
источник