Я использую вариант 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 минуту. Пожалуйста, подскажите, что мне не хватает?
Строка в вашем 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