Używam Arch Linux z KDE / Awesome WM. Próbuję zabrać się
notify-send
do pracy cron
.
Próbowałem ustawienia DISPLAY
/ XAUTHORITY
zmienne i działa notify-send
z "sudo -u", wszystko bez rezultatu.
Jestem w stanie dzwonić interaktywnie z sesji i otrzymywać powiadomienia.
FWIW, zadanie crona działa poprawnie, co zweryfikowałem przez echo rzeczy do pliku tymczasowego. To tylko „powiadomienie-wysłanie” nie działa.
Kod:
[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 ~]$
Jak widać echo przed i po powiadomieniu-send działało.
Również próbowałem ustawieniaDISPLAY=:0.0
AKTUALIZACJA: Szukałem trochę więcej i stwierdziłem, że DBUS_SESSION_BUS_ADDRESS musi zostać ustawiony. Po zakodowaniu tego na podstawie wartości uzyskanej z mojej interaktywnej sesji, maleńka mała wiadomość „cześć” zaczęła pojawiać się na ekranie co minutę!
Ale catch polega na tym, że ta zmienna nie jest stała dla tego postu, więc wypróbuję nazwane rozwiązanie potoku sugerowane tam.
[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
Ponieważ cron
wydaje się, że nie obsługuje wysyłania powiadomień (przynajmniej nie bezpośrednio), czy istnieje jakiś inny system powiadomień, który jest bardziej cron
przyjazny, z którego mogę korzystać?
&>>/tmp/crontest
do linii wysyłania powiadomień i nie zobaczysznotify-send
żadnych komunikatów o błędach.