克朗与通知发送

我需要显示一个cron作业的通知。 我的crontab是这样的:

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

我检查了/var/log/syslog ,这个命令实际上是每分钟执行一次,但是不会popup通知。 任何人都可以帮我理解为什么?

Solutions Collecting From Web of "克朗与通知发送"

我找到了答案:

 $ crontab -l # mh dom mon dow command * * * * * export DISPLAY=:0.0 && export XAUTHORITY=/home/ravi/.Xauthority && sudo -u ravi /usr/bin/notify-send Hey "How are you" 

谢谢,拉维

在Ubuntu 14.04导出显示没有为我工作。 下面是我用来在笔记本电脑的电池状态过低时关闭虚拟机的cron脚本。 行设置DBUS_SESSION_BUS_ADDRESS是最终得到警告正常工作的修改。

 #!/bin/bash # if virtual machine is running, monitor power consumption if pgrep -x vmware-vmx; then bat_path="/sys/class/power_supply/BAT0/" if [ -e "$bat_path" ]; then bat_status=$(cat $bat_path/status) if [ "$bat_status" == "Discharging" ]; then bat_current=$(cat $bat_path/capacity) # halt vm if critical; notify if low if [ "$bat_current" -lt 10 ]; then /path/to/vm/shutdown/script echo "$( date +%Y.%m.%d_%T )" >> "/home/user/Desktop/VM Halt Low Battery" elif [ "$bat_current" -lt 15 ]; then eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)"; notify-send -i "/usr/share/icons/ubuntu-mono-light/status/24/battery-caution.svg" "Virtual machine will halt when battery falls below 10% charge." fi fi fi fi exit 0 

相关的行在这里:

 eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)"; 

我在这里找到了解决方案: https : //askubuntu.com/a/346580/255814

我创建了一个使用DISPLAY-:0.0技术的/ usr / bin脚本http://pastebin.com/h11p2HtN

它不考虑XAUTHORITY。 我将不得不进一步调查。

只有这个对我有用(Xubuntu)

 eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME xfce4-session)/environ)"; notify-send "hello world" 

如果你在GNOME环境中,你需要把xfce4-session改成gnome-session

请参考: https : //askubuntu.com/questions/298608/notify-send-doesnt-work-from-crontab

为我在Fedora 22上工作:

在notify-send被调用之前,将这一行放在.sh脚本中:

 eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)" 

可能是你可以尝试:

* * * * * env DISPLAY=:0.0 sudo -u ravi /usr/bin/notify-send Hey "How are you"

当您在脚本中调用notify-send时,请尝试以下操作:

echo "PASSWORD" | sudo -u USER notify-send "your alert message"