Я использую Arch Linux с KDE / Awesome WM. Я пытаюсь заставить
notify-send
работать cron
.
Я попытался установить DISPLAY
/ XAUTHORITY
переменные и работает notify-send
с "sudo -u", все безрезультатно.
Я могу звонить, уведомлять-отправлять в интерактивном режиме с сессии и получать уведомления.
FWIW, задание cron работает нормально, что я проверял, выводя вещи во временный файл. Это просто «уведомить-отправить», которая не работает.
Код:
[matrix@morpheus ~]$ crontab -l
* * * * * /home/matrix/scripts/notify.sh
[matrix@morpheus ~]$ cat /home/matrix/scripts/notify.sh
#!/bin/bash
export DISPLAY=127.0.0.1:0.0
export XAUTHORITY=/home/matrix/.Xauthority
echo "testing cron" >/tmp/crontest
sudo -u matrix /usr/bin/notify-send "hello"
echo "now tested notify-send" >>/tmp/crontest
[matrix@morpheus ~]$ cat /tmp/crontest
testing cron
now tested notify-send
[matrix@morpheus ~]$
Как вы можете видеть эхо до и после уведомления-отправки сработало.
Также я попробовал установкуDISPLAY=:0.0
ОБНОВЛЕНИЕ: я искал немного больше и обнаружил, что DBUS_SESSION_BUS_ADDRESS должен быть установлен. И после того, как я жестко запрограммировал это, используя значение, которое я получил от моего интерактивного сеанса, крошечное маленькое «привет» сообщение начало появляться на экране каждую минуту!
Но уловка в том, что эта переменная не является постоянной для каждого поста, поэтому я попробую решение с именованным каналом, предложенное там.
[matrix@morpheus ~]$ cat scripts/notify.sh
#!/bin/bash
export DISPLAY=127.0.0.1:0.0
export XAUTHORITY=/home/matrix/.Xauthority
export DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-BouFPQKgqg,guid=64b483d7678f2196e780849752e67d3c
echo "testing cron" >/tmp/crontest
/usr/bin/notify-send "hello"
echo "now tested notify-send" >>/tmp/crontest
Поскольку cron
, похоже, не поддерживается отправка уведомлений (по крайней мере, напрямую), существует ли какая-то другая система уведомлений, более cron
удобная для использования?
&>>/tmp/crontest
в строку отправки уведомлений и посмотреть,notify-send
дает ли какие-либо сообщения об ошибках.