Seu primeiro problema é que você tem a sintaxe errada para executar um trabalho a cada minuto:
1 * * * * /usr/bin/notify-send -t 0 "hello"
O 1
no primeiro campo significa que o trabalho é executado apenas 1 minuto após cada hora. Altere de 1
para *
:
* * * * * /usr/bin/notify-send -t 0 "hello"
O segundo problema é que as tarefas agendadas são executadas em um ambiente muito limitado. No meu sistema (Linux Mint), as únicas variáveis de ambiente definidas são $HOME
, $LOGNAME
, $PATH
, $LANG
, $SHELL
e $PWD
- e $PATH
é normalmente definido como "/usr/bin/:/bin"
.
No mínimo, a falta de uma configuração para $DISPLAY
significa que notify-send
não pode exibir nada.
Uma rápida experiência com:
* * * * * DISPLAY=:0.0 notify-send "hello from crontab"
resultou neste erro:
(notify-send:18831): GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
(estou executando a área de trabalho do Gnome.)
Em outra experiência, copiei todo o meu ambiente interativo em um script e editei o script para definir explicitamente todas as variáveis de ambiente e invocar notify-send
. Isso realmente funciona; Agora estou recebendo uma mensagem pop-up "hello from crontab" a cada minuto.
Tenho certeza de que não preciso de todo meu ambiente interativo para que isso funcione, mas não sei exatamente quais variáveis de ambiente são necessárias ou quais devem ser seus valores. É muito provável que algumas das variáveis necessárias sejam definidas quando a sessão de login atual é iniciada e que elas serão alteradas se eu fizer o logout e o login novamente. Também é muito provável que os detalhes variem dependendo do ambiente de área de trabalho que você está usando.
Esta não é uma solução completa, mas deve dar-lhe um ponto de partida - e talvez outra pessoa possa adicionar os detalhes relevantes.