J'utilise Arch Linux avec KDE / Awesome WM. J'essaie
notify-send
de travailler avec cron
.
J'ai essayé de définir DISPLAY
/ XAUTHORITY
variables et de courir notify-send
avec "sudo -u", le tout sans résultat.
Je peux appeler notifier-envoyer de manière interactive depuis la session et recevoir des notifications.
FWIW, le travail cron fonctionne correctement, ce que j'ai vérifié en faisant écho à un fichier temporaire. C'est juste le "notify-send" qui ne fonctionne pas.
Code:
[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 ~]$
Comme vous pouvez le voir, l'écho avant et après notification-envoi a fonctionné.
J'ai aussi essayé de réglerDISPLAY=:0.0
MISE À JOUR: J'ai cherché un peu plus et j'ai constaté que DBUS_SESSION_BUS_ADDRESS doit être défini. Et après avoir codé en dur cela en utilisant la valeur que j'ai obtenue de ma session interactive, le minuscule petit message "bonjour" a commencé à apparaître à l'écran toutes les minutes!
Mais le hic, c'est que cette variable n'est pas permanente pour ce poste, je vais donc essayer la solution de tuyau nommée suggérée ici.
[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
Étant donné cron
que ne semble pas prendre en charge la notification-envoi (du moins pas directement), existe-t-il un autre système de notification plus cron
convivial que je peux utiliser?
&>>/tmp/crontest
à la ligne d'envoi de notification et voyez sinotify-send
donne des messages d'erreur.