Como abrir automaticamente um URL em horários específicos a cada dia

0

Estou usando o kubuntu 14.04. Eu instalei o cron usando o sudo apt-get install cron, e então eu criei este arquivo no IDLE, chamado openurl.py .

#!/usr/bin/env python

import webbrowser

webbrowser.open('http://eample.com')

Em seguida, digitei chmod +x openurl.py no terminal para tornar o arquivo .py passível de execução. Se eu digitar ./openurl.py no terminal, o script funcionará.

depois, usando o inicializador de aplicativos de kickoff, cliquei nas configurações do sistema > agendador de tarefas > nova tarefa > então procurei pelo arquivo openurl.py e selecionei quando queria que ele fosse executado.

Se eu digitar crontab -e no terminal, isso será exibido:

#openurl
21 21 * * *     /home/craig/openurl.py


# File generated by KCron the Thursday 29 Jan 2015 21:20.

E então eu espero, e nada acontece. O que estou fazendo errado?

    
por Blue7 29.01.2015 / 22:32

2 respostas

1

Eu acho que sua configuração do cron está correta. Eu não estou completamente familiarizado com a função webbrower.open () do python, mas presumo que você esteja esperando que o script python abra sua página em uma janela visível do navegador.

Eu acho que o que está acontecendo aqui é que quando você chama o script a partir da linha de comando, funciona porque ele está sendo executado na sua sessão gráfica. Quando é chamado a partir do cron, ele é executado em uma nova sessão sem os ganchos em seu ambiente gráfico atual, portanto, não tem para onde iniciar o navegador. Você pode verificar se o script está sendo executado, fazendo com que ele crie um arquivo com o registro de data e hora atual ou grave o registro de data e hora atual em um log em algum lugar.

Se o seu objetivo final é ter uma atualização de página uma vez por dia, você pode procurar em um plug-in do navegador para conseguir isso, caso contrário, precisará descobrir o problema do ambiente.

    
por 29.01.2015 / 23:06
0

O problema é que o cron não sabe sobre sua sessão de login.

Se o script não funcionar no console do sistema ( ctrl-alt-f1 ), ele definitivamente funcionará no cron.

Se você quer automatizar o GUI, provavelmente é melhor usar um dscheduler baseado na GUI ao invés do cron.

    
por 30.01.2015 / 06:20

Tags