Você está perdendo a variável DISPLAY
. Mude seu script para
DISPLAY=:0 notify-send -i "Notification test"
Explicação
Quando você executa o script a partir do seu próprio ambiente, várias variáveis de ambiente são definidas automaticamente. No entanto, o Cron é executado com um conjunto limitado de variáveis de ambiente.
Para executar aplicativos GUI (incluindo notify-send
), a variável DISPLAY
é essencial.
Se você tiver mais de um DISPLAY
Caso você tenha mais de um DISPLAY
(se, por exemplo, mais usuários estiverem conectados), o DISPLAY
talvez não seja DISPLAY=:0
Se você tem regularmente mais de um usuário logado, pode ser necessário incluir em seu script a análise das informações do comando:
who -u
que produz linhas como:
jacob :0 2016-03-18 08:30 ? 2419 (:0)
Como você pode ver, meu DISPLAY
é :0