Оказалось, что штатная утилита
at не способна запустить ни одну gui программу.
Проблема в том, что переменная окружения DISPLAY не запоминается и не передается дочернему процессу - причем это даже описано в руководстве по at.
Решением будет запоминать и передавать переменную DISPLAY принудительно.
echo export DISPLAY=$DISPLAY \&\& zenity --info --text \"Hello\" | at now + 1 minutes
Небольшой скрипт-напоминалка:
#!/bin/bash
if (( $# < 1 ))
then
echo "Time for 'at' is not specified"
exit -1
fi
echo export DISPLAY=$DISPLAY \&\& \(play -q /usr/share/sounds/ubuntu/stereo/dialog-information.ogg \&\) \&\& \
zenity --info --title \"Alarm\" --text \"Notification for [$@]\" | at "$@"
Комментариев нет:
Отправить комментарий