Captura de tela do cron job não está funcionando

1

Eu tenho procurado por toda a internet por um aswer para isso, mas parece que não consigo encontrar nada que funcione para mim.

Eu quero executar um cron job que automaticamente leva uma captura de tela a cada minuto. O script é assim:

#!/bin/bash
cd /home/ville/Skrivbord/screenshot
import -display :0 -win root screenshot.jpg

O código funciona bem quando executado manualmente, mas não funciona quando eu o executo como um trabalho cron.

O arquivo cron se parece com isto:

* * * * * /root/bin/screen.bash &> /dev/null
* * * * * /root/bin/syncdata.bash

A outra tarefa, o syncdata funciona bem.

Aqui estão algumas das coisas que tentei sem sucesso:

Altere as permissões em /root/bin/screen.bash e / home / ville / Skrivbord / screenshot para 777 e altere o proprietário para root.

Muda o nome do arquivo para screen.sh (talvez não haja diferença entre .bash e .sh?)

Altere a linha de importação para "import -win root screenshot.jpg" e "import -display: 0.0 -win root screenshot.jpg".

Adicionado o código:

# Set display to :0 if it's not already set.
: ${DISPLAY:=:0}
export DISPLAY

Uma vez acima do código existente em screen.bash e uma vez abaixo.

Alterou a linha no cron para "* * * * * export DISPLAY =: 0 & /root/bin/screen.bash".

Nada funciona!

Por favor me ajude

    
por Vilhelm Frändberg 04.08.2011 / 18:51

1 resposta

2

Os programas iniciados pelo daemon cron não possuem os dados de autenticação necessários para se conectar ao seu servidor X. Tente colocar algo assim em seu ~/.xprofile :

if [ "$XAUTHORITY" ]; then
    cp -f "$XAUTHORITY" ~/.Xauthority
fi
    
por 04.08.2011 / 20:34