Di Ubuntu 14.04 mengekspor tampilan tidak berfungsi untuk saya. Di bawah ini adalah skrip cron yang saya gunakan untuk mematikan mesin virtual ketika kondisi baterai laptop menjadi terlalu lemah. Pengaturan baris DBUS_SESSION_BUS_ADDRESS adalah modifikasi yang akhirnya membuat peringatan berfungsi dengan benar.
#!/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
Baris yang relevan ada di sini:
eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)";
Saya menemukan solusinya di sini:https://askubuntu.com/a/346580/255814
Hanya ini yang berfungsi untuk saya (Xubuntu)
eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME xfce4-session)/environ)"; notify-send "hello world"
Jika Anda berada di lingkungan gnome, Anda perlu mengubah xfce4-session
ke gnome-session
rujuk:https://askubuntu.com/questions/298608/notify-send-doesnt-work-from-crontab
Saya menemukan jawabannya:
$ crontab -l
# m h dom mon dow command
* * * * * export DISPLAY=:0.0 && export XAUTHORITY=/home/ravi/.Xauthority && sudo -u ravi /usr/bin/notify-send Hey "How are you"
Saya menggunakan i3 di Ubuntu 18.04. Cara saya untuk menyelesaikan ini adalah:
* * * * * XDG_RUNTIME_DIR=/run/user/$(id -u) notify-send Hey "this is dog!"
Sunting 2020:Saya masih menggunakannya di Ubuntu 20.04.