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
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
Tags cron screenshot linux