Первым виновником является ваш файл crontab, вам также нужно указать имя пользователя, с которым должен выполняться сценарий, лучше сохранить его как root
0,15,30,45 12-23 * * 3 root /home/jchester/bin/opreminder.sh
, а затем вы должны использовать имя пользователя пользователь GUI внутри сценария и добавьте его для уведомления-отправки с помощью «sudo или su» для выполнения команды как пользователя, которому принадлежит пример GUI
:
su gnome_user_name -c 'notify-send "summary" "body"'
или
sudo -u gnome_user_name notify-send "summary" "body"
где gnome_user_name является именем пользователя, который запустил сеанс GUI, это вы вошли в систему, и если вы хотите сделать его динамическим выбором, вы можете получить его из
GNOME_USER=`ps -eo uname,cmd | grep gnome-session| head -1 | cut -d' ' -f1 `
пример:
su $GNOME_USER -c 'notify-send "summary" "body"'
или
sudo -u $GNOME_USER notify-send "summary" "body"