O Cron não tem acesso à sua sessão X, por design. Você provavelmente deve executar isso em um loop de plano de fundo do seu .xsession
ou semelhante.
Eu quero executar um determinado script quando não estiver por perto de minha máquina, para que ele seja executado automaticamente, mas isso não me incomoda quando estou trabalhando. Eu criei o script bash e coloquei na fila com o cron, mas ele não parece rodar (ele não produz o efeito necessário de abrir uma aba do navegador).
Aqui está o script localizado em /home/suseika/.bin/stackoverflowfanatic
:
#!/bin/bash
idle='xprintidle' # tells how long in milliseconds x server haven't been receiving any events
required_idle_time=3600000 # one hour in milliseconds
if [[ $idle -gt $required_idle_time ]];
then
chromium http://stackoverflow.com/
echo idle was $idle
xdotool mousemove 12 13 # A quick and dirty way to send an event to x server
xdotool mousemove 12 14
echo now idle is 'xprintidle' # for debugging
fi
O script funciona bem se eu definir required_idle_time
para 0 e executá-lo manualmente com sleep 1 && stackoverflowfanatic
Aqui está como eu enfileirei com o cron:
/etc/cron.d/stackoverflow
:
0,30 * * * * suseika /home/suseika/.bin/stackoverflowfanatic
O Cron não tem acesso à sua sessão X, por design. Você provavelmente deve executar isso em um loop de plano de fundo do seu .xsession
ou semelhante.