Quando você está executando o script em cron
, ele não tem acesso à variável de ambiente DISPLAY
, que é como ele sabe o que o X11 exibe com o qual interagir. Você pode conseguir que isso funcione adicionando o seguinte ao seu script:
# Set display to :0 if it's not already set.
: ${DISPLAY:=:0}
export DISPLAY
Isso pressupõe que seu DISPLAY
seja sempre :0
, o que é verdadeiro se você estiver efetuando login no console, mas não verdadeiro, se estiver executando o X remotamente.