Reinicie o Firefox com um cronjob

1

Eu tenho um sistema Ubuntu 14.04 que roda o Firefox o dia todo. Agora eu quero reiniciar o Firefox automaticamente uma vez por dia, então criei o seguinte script de shell:

#!/bin/sh
killall firefox
sleep 5
killall -9 firefox
sleep 2
/usr/bin/firefox -URL <...>

e configure o cronjob para chamar o script. Mas não funciona, eu recebo:

Error: no display specified

Quando eu insiro

export DISPLAY=:0

Eu obtenho

No protocol specified
No protocol specified
Error: cannot open display: :0

Qual é a maneira correta de fazer isso?

    
por Frank Steinmann 28.04.2014 / 17:17

2 respostas

1

Para executar um comando através de xserver de outro usuário, é necessário exportar duas variáveis:% XAUTHORITY e DISPLAY .

Primeiro de tudo, é o que DISPLAY está conectado ao usuário digitando:

w

assumindo que o usuário "username" usa o display "1", e que o script deve ser executado às 23:30, atualize seu crontab, da seguinte forma:

30 23 *** export XAUTHORITY=/home/username/.Xauthority && export DISPLAY=:1 && /path/to/script 2> /tmp/error_cron.log 

a última parte da linha é salvar os erros em /tmp/error_cron.log

    
por girardengo 28.04.2014 / 21:45
0

Primeiro, certifique-se de editar o crontab com crontab -e e não um dos arquivos em / etc (como /etc/cron.hourly ).

Em seguida, você precisa declarar a variável DISPLAY no próprio trabalho de verificação:

DISPLAY=:0 /path/to/your/script
    
por Sylvain Pineau 28.04.2014 / 17:46