O script Python é executado como um comando bash no terminal, mas não como um trabalho cron

0

Eu estou tentando executar um script python no meu Raspberry Pi (Stretch OS) como uma tarefa do cron, mas o script não funciona completamente.

No crontab -e, lê-se assim:

*/1 * * * * python /home/pi/project/myfile.py >> /home/pi/project/logerrorfile.txt

O arquivo de log mostra que o script não é executado quando tenta importar uma variável de um arquivo de texto (ou seja, variável.txt) como mostrado em um segmento do código myfile.py abaixo:

print("reading txt file for variable now") #log file prints this
text_file = open('variable.txt')
try:
    variable = text_file.readlines()
except:
    print("Error: unable to read variable from txt file") #This is not printed in the log file
print("variable read successfully from txt file") #This is also not printed in the log file

No entanto, quando eu executo este script como um comando bash no terminal, ele corre bem e todo o script é executado. Por que isso funciona corretamente como um comando bash no terminal, mas não funciona como um cron job? Também tentei indicar o caminho absoluto do meu executor python no meu comando de tarefa cron para: #0,30 * * * * /usr/bin/python /home/pi/project/myfile.py >> /home/pi/project/logerrorfile.txt , mas o script ainda não funciona como uma tarefa cron. Portanto, parece que usar o cron para executar um script que lê uma variável de um arquivo de texto se torna problemático. Eu aprecio qualquer conselho sobre isso.

    
por Craver2000 14.09.2018 / 15:33

1 resposta

1

Como o steeldriver mencionou, a solução é declarar o caminho absoluto para o arquivo variable.txt no script para o cron funcionar.

    
por 14.09.2018 / 16:02