Программа, которая составляет at
задание является ребенком atd
(в демоне) процесс, не оболочки, куда Вы работаете at
. Таким образом, это не наследовало среду текущей оболочки. at
система располагает скопировать среду (и рабочий каталог и некоторые более неясная вещь), но это опускает несколько переменных.
В частности, DISPLAY
переменная не копируется в в задании. Эта переменная говорит все X программ, которые отображаются для соединения с. Без X дисплеев dzen2 не знает, где открыться уведомление. В удаляет DISPLAY
потому что это обычно используется для пакетных заданий, которые не производят терминального или вывода графических данных.
notify-send
работы, потому что это не соединяется с X-сервером: это использует D-шину для соединения с демоном, который привязан X сессиям.
Можно заставить dzen2 работать путем явного копирования DISPLAY
переменная:
echo "export DISPLAY=$DISPLAY;" 'echo hello | dzen2 -p' | at now + 42 minutes
Вероятно, что dzen2 производит сообщение об ошибке (стандартное сообщение Can't open display:
). Любой выходной сигнал или сообщение об ошибке, произведенное в задании, отправляются местной почтой (точно как для заданий крона). Проверьте свою местную почту.