Ich benutze Arch Linux mit KDE / Awesome WM. Ich versuche mit
notify-send
zu arbeiten cron
.
Ich habe versucht, DISPLAY
/ XAUTHORITY
Variablen zu setzen und notify-send
mit "sudo -u" zu laufen , alles ohne Ergebnis.
Ich kann notify-send interaktiv von der Sitzung aus aufrufen und Benachrichtigungen erhalten.
FWIW, der Cron-Job läuft einwandfrei, was ich überprüft habe, indem ich Sachen in eine temporäre Datei zurückgesendet habe. Es ist nur das "Benachrichtigen-Senden", das nicht funktioniert.
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 ~]$
Wie Sie sehen, hat das Echo vor und nach dem Benachrichtigungsversand funktioniert.
Auch ich habe Einstellung versuchtDISPLAY=:0.0
UPDATE: Ich habe ein bisschen mehr gesucht und festgestellt, dass DBUS_SESSION_BUS_ADDRESS gesetzt werden muss. Und nachdem ich dies mit dem Wert, den ich in meiner interaktiven Sitzung erhalten hatte, fest codiert hatte, tauchte jede Minute die winzige kleine "Hallo" -Meldung auf dem Bildschirm auf!
Aber der Haken ist, dass diese Variable für diesen Beitrag nicht permanent ist, also werde ich versuchen, die dort vorgeschlagene Named-Pipe-Lösung zu verwenden.
[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
Da cron
das Senden von Benachrichtigungen anscheinend nicht unterstützt wird (zumindest nicht direkt), gibt es ein anderes Benachrichtigungssystem, das cron
benutzerfreundlicher ist, als ich es kann?
&>>/tmp/crontest
der Benachrichtigungssendezeile ein hinzu und prüfen Sie, obnotify-send
Fehlermeldungen angezeigt werden.