KDE / Awesome WMでArch Linuxを使用しています。notify-send
一緒に仕事をしようとし
ていcron
ます。
DISPLAY
/ XAUTHORITY
変数を設定notify-send
し、「sudo -u」で実行しようとしましたが、すべて結果はありませんでした。
セッションからnotify-sendをインタラクティブに呼び出して通知を受け取ることができます。
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を設定する必要があることがわかりました。そして、インタラクティブセッションから取得した値を使用してこれをハードコーディングした後、小さな「hello」メッセージが毎分画面にポップアップし始めました。
しかし、キャッチはこの変数がこの投稿ごとに永続的ではないため、そこで提案されている名前付きパイプソリューションを試してみます。
[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
(少なくとも直接ではなく)notify-sendをサポートしていないように思えるので、もっとcron
使いやすい他の通知システムがありますか?
&>>/tmp/crontest
通知送信行にを追加して、notify-send
エラーメッセージが表示されるかどうかを確認してください。