cron ジョブからの通知を表示する必要があります。私のcrontabは次のようなものです:
$ crontab -l
# m h dom mon dow command
* * * * * Display=:0.0 /usr/bin/notify-send Hey "How are you"
確認/var/log/syslog
したところ、コマンドは実際に毎分実行されますが、通知はポップアップしません。誰かが理由を理解するのを手伝ってくれますか?
Ubuntu 18.04 で i3 を使用しています。これを解決する私の方法は次のとおりです。
* * * * * XDG_RUNTIME_DIR=/run/user/$(id -u) notify-send Hey "this is dog!"
編集 2020: 私はまだ Ubuntu 20.04 で使用しています。
fedora 22で私のために働きます:
notify-send get が呼び出される前に、.sh スクリプトに次の行を追加します。
eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)"
シンプルで削減された答え:
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 は実際には必要ありません
DISPLAY-:0.0 テクニックを使用する /usr/bin スクリプトを作成しましたhttp://pastebin.com/h11p2HtN
XAUTHORITY は考慮されません。私はそれをさらに調査する必要があります。