在新版本的gnome-ubuntu系统中,发现crontab 中的 notify-send 不能显示通知(某些版本的ubuntu中是可以显示的,如Mint),但命令确实执行了,因为其中的无UI命令都执行了。当然后面Google到了具体的解决办法,记录如下:
写一个代码引用otify-send :
#!/bin/bash
# showtips
source /home/work/.bashrc
pid=$(pgrep -u work gnome-session | head -n 1)
dbus=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$pid/environ | sed 's/DBUS_SESSION_BUS_ADDRESS=//' )
export DBUS_SESSION_BUS_ADDRESS=$dbus
export HOME=/home/work
export DISPLAY=:0
/usr/bin/notify-send $1 $2 $3 $4
注意变更其中的目录/home/work/为你实际的目录路径,保存为/usr/bin/showtips,赋于showtips运行权限:
sudo chmod +x /usr/bin/showtips
然后在crontab中使用showtips代替 notify-send
56-59 16 * * * DISPLAY=:0 /usr/bin/showtips -i /home/work/tips.png "提醒" "准备下班!"
经测试,通知完美显示。