Falha na execução do script Python usando um cron

0

Estou usando a variante do FreeBSD como visto abaixo:

[2.2.4-RELEASE][[email protected]]/home/Script_to_monitor_power: uname -a
FreeBSD ROUTER.local 10.1-RELEASE-p15 FreeBSD 10.1-RELEASE-p15 #0 c5ab052(releng/10.1)-dirty: Sat Jul 25 20:20:58 CDT 2015     root@pfs22-amd64-builder:/usr/obj.amd64/usr/pfSensesrc/src/sys/pfSense_SMP.10  amd64
[2.2.4-RELEASE][[email protected]]/home/Script_to_monitor_power:

Eu escrevi um script python que roda com sucesso usando o comm abaixo na CLI:

 /usr/local/bin/python2.7 /home/Script_to_monitor_power/power_alarm_t2.py

O script python contém uma linha shebang, conforme abaixo:

#!/usr/bin/env python2.7

A localização do python2.7 é a seguinte:

[2.2.4-RELEASE][[email protected]]/home/Script_to_monitor_power: where python2.7
/usr/local/bin/python2.7
[2.2.4-RELEASE][[email protected]]/home/Script_to_monitor_power:

Meu objetivo é executar o script acima como um cronjob. Então eu faço meu script executável usando

[2.2.4-RELEASE][[email protected]]/home/Script_to_monitor_power: chmod +x power_alarm_t2.py

Eu tenho o editado o crontab como abaixo:

[2.2.4-RELEASE][[email protected]]/home/Script_to_monitor_power: crontab -l
* * * * * /usr/local/bin/python2.7 /home/Script_to_monitor_power/power_alarm_t2.py
[2.2.4-RELEASE][[email protected]]/home/Script_to_monitor_power:

Eu também faço:

[2.2.4-RELEASE][[email protected]]/home/Script_to_monitor_power: cron reload
cron: cron already running, pid: 43420
[2.2.4-RELEASE][[email protected]]/home/Script_to_monitor_power:

Agora, quando eu faço:

[2.2.4-RELEASE][[email protected]]/home/Script_to_monitor_power:   ps -ef | grep cron
[2.2.4-RELEASE][[email protected]]/home/Script_to_monitor_power:

P: Meu cronjob não está em execução após cada 1 min. Por favor, sugira o que me falta?

    
por fsociety 10.05.2017 / 07:11

1 resposta

2

A linha no seu cron deve ser:

* * * * * /home/Script_to_monitor_power/power_alarm_t2.py

Se você executar o python a partir de um local fora do padrão, é aconselhável envolver esse script python no shell script e adicionar PATH e LD_LIBRARY_PATH.

Você também pode tentar criar um shell script e adicionar este script no cron para fazer a execução do python com um ponto explícito para o executável python e adicionar suas variáveis de ambiente:

#!/bin/bash
source ~/.bash_profile
/path/to/python /home/Script_to_monitor_power/power_alarm_t2.py
    
por 10.05.2017 / 07:23