Estou usando o Arch Linux com o KDE / Awesome WM. Eu estou tentando
notify-send
trabalhar cron
.
Eu tentei definir DISPLAY
/ XAUTHORITY
variáveis e executando notify-send
com "sudo -u", tudo sem resultado.
Consigo ligar para notificar-enviar interativamente a partir da sessão e receber notificações.
FWIW, o trabalho cron está sendo executado corretamente, o que eu verifiquei ecoando coisas para um arquivo temporário. É apenas o "envio de notificação" que não funciona.
Código:
[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 ~]$
Como você pode ver, o eco antes e depois do envio de notificação funcionou.
Também tentei configurarDISPLAY=:0.0
ATUALIZAÇÃO: pesquisei um pouco mais e descobri que DBUS_SESSION_BUS_ADDRESS precisa ser definido. E depois de codificar isso usando o valor que recebi da minha sessão interativa, a pequena mensagem de "olá" começou a aparecer na tela a cada minuto!
Mas o problema é que essa variável não é permanente por esse post, então tentarei a solução de pipe nomeada sugerida lá.
[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
Como cron
não parece oferecer suporte ao envio de notificação (pelo menos não diretamente), existe algum outro sistema de notificação mais cron
amigável que eu possa usar?
&>>/tmp/crontest
à linha de notificação de envio e vê se hánotify-send
alguma mensagem de erro.