Eu realmente recomendo usar um script de wrapper. Para emular cron chamando notificar-enviar, eu sshed em meu próprio sistema com "ssh localhost". Chamando '/ usr / bin / notify-send' foo '' Não funcionou, e não tive sorte ao adicionar DISPLAY =: 0.0 na linha. Aqui está o que funcionou:
DBUS_SESSION_BUS_ADDRESS="$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/'pgrep -u username cinnamon|head -1'/environ | sed 's/DBUS_SESSION_BUS_ADDRESS=//')" /usr/bin/notify-send "foo"
Isso é MUITO confuso, para dizer o mínimo. Isso é mais limpo.
#! /bin/bash
DBUS=$(pgrep -ou $1 cinnamon)
DBUS="$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$DBUS/environ | sed 's/DBUS_SESSION_BUS_ADDRESS=//')"
DBUS_SESSION_BUS_ADDRESS="$DBUS" /usr/bin/notify-send $2
E no cron:
*/1 * * * * /path/to/notify.sh user "help"
Por favor, note que o bit "canela" está lá porque o gerenciador de janelas que eu uso. Você provavelmente terá que substituí-lo com nautilus, ou qualquer outra coisa que você tenha como gerenciador de janelas. Eu também tenho um usuário especificado como o primeiro argumento, porque o torna mais modular depois, se você quer que isso funcione, independentemente de quem está logado.