W Ubuntu 14.04 eksportu wyświetlacz nie działa dla mnie. Poniżej znajduje się skrypt crona, którego używam do wyłączania maszyny wirtualnej, gdy stan baterii laptopa staje się zbyt niski. Ustawienie linii DBUS_SESSION_BUS_ADDRESS jest modyfikacją, która w końcu doprowadziła do prawidłowego działania ostrzeżeń.
#!/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
odpowiedniej linii jest tutaj:
eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)";
znalazłem rozwiązanie tutaj: https://askubuntu.com/a/346580/255814
Wystarczy dodać „export DISPLAY =: 0.0” wystarczyły dla mnie.Powiedział, że cronjob działa pod moim kontem użytkownika. XAUTHORITY jest prawdopodobnie potrzebne, gdy uruchamiane jest z innego konta niż to, w którym musi się pojawić popup. Dzięki. – Ruben
Dzięki, to mi pomogło (nie musiałem używać "sudo") –
Ja też. Mogę zmniejszyć to polecenie do '* * * * * export DISPLAY =: 0.0 && notify-send Hey" How are you "' – TomTom