Ошибка при запуске скрипта Python с использованием cron

Я использую вариант FreeBSD, как показано ниже:

[2.2.4-RELEASE][root@ROUTER.local]/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][root@ROUTER.local]/home/Script_to_monitor_power:

Я написал сценарий python, который успешно запускается, используя следующие commnd в CLI:

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

Сценарий python содержит строку shebang, как показано ниже:

#!/usr/bin/env python2.7

Расположение python2.7 показано ниже:

[2.2.4-RELEASE][root@ROUTER.local]/home/Script_to_monitor_power: where python2.7
/usr/local/bin/python2.7
[2.2.4-RELEASE][root@ROUTER.local]/home/Script_to_monitor_power:

Моя цель - запустить указанный выше сценарий как задание cron. Итак, я делаю свой скрипт исполняемым, используя

[2.2.4-RELEASE][root@ROUTER.local]/home/Script_to_monitor_power: chmod +x power_alarm_t2.py

. Я отредактировал crontab, как показано ниже:

[2.2.4-RELEASE][root@ROUTER.local]/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][root@ROUTER.local]/home/Script_to_monitor_power:

Я также делаю:

[2.2.4-RELEASE][root@ROUTER.local]/home/Script_to_monitor_power: cron reload
cron: cron already running, pid: 43420
[2.2.4-RELEASE][root@ROUTER.local]/home/Script_to_monitor_power:

Теперь, когда я это делаю:

[2.2.4-RELEASE][root@ROUTER.local]/home/Script_to_monitor_power:   ps -ef | grep cron
[2.2.4-RELEASE][root@ROUTER.local]/home/Script_to_monitor_power:

Q: Моя cronjob не запускается каждые 1 минуту. Пожалуйста, подскажите, что мне не хватает?

0
10.05.2017, 08:11
1 ответ

Строка в вашем cron должна быть:

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

Если вы запускаете python из нестандартного расположения, возможно, будет разумно обернуть этот скрипт python в сценарий оболочки и добавить PATH и LD_LIBRARY_PATH.

Вы также можете попробовать создать сценарий оболочки и добавить этот сценарий в cron, чтобы выполнить выполнение python с явным указанием на исполняемый файл python и добавить переменные вашей домашней среды:

#!/bin/bash
source ~/.bash_profile
/path/to/python /home/Script_to_monitor_power/power_alarm_t2.py
2
28.01.2020, 02:33

Теги

Похожие вопросы