30

cron ジョブからの通知を表示する必要があります。私のcrontabは次のようなものです:

$ crontab -l
# m h  dom mon dow   command
  * *   *   *   *    Display=:0.0 /usr/bin/notify-send Hey "How are you"

確認/var/log/syslogしたところ、コマンドは実際に毎分実行されますが、通知はポップアップしません。誰かが理由を理解するのを手伝ってくれますか?

4

13 に答える 13

66

Ubuntu 18.04 で i3 を使用しています。これを解決する私の方法は次のとおりです。

* * * * * XDG_RUNTIME_DIR=/run/user/$(id -u) notify-send Hey "this is dog!"

編集 2020: 私はまだ Ubuntu 20.04 で使用しています。

于 2018-12-03T17:07:28.583 に答える
3

fedora 22で私のために働きます:

notify-send get が呼び出される前に、.sh スクリプトに次の行を追加します。

eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)"
于 2017-09-16T05:57:20.157 に答える
1

シンプルで削減された答え:

01 * * * * export DISPLAY=:0.0 && notify-send Hey "How are you"

Xauthority許可が必要な場合は、$LOGNAME変数を使用した一般化可能なフォームを次に示します

01 * * * * export DISPLAY=:0.0 && && export XAUTHORITY=/home/$LOGNAME/.Xauthority notify-send Hey "How are you"

@tripleee が指摘したように、ここでは sudo は実際には必要ありません

于 2018-01-10T16:21:39.047 に答える
0

DISPLAY-:0.0 テクニックを使用する /usr/bin スクリプトを作成しましたhttp://pastebin.com/h11p2HtN

XAUTHORITY は考慮されません。私はそれをさらに調査する必要があります。

于 2013-11-23T07:53:22.017 に答える