2016-04-02 3 views
0

Я пытаюсь запустить скрипт Python для работы по часам с помощью crontab, но я не могу заставить его работать.Crontab и Python prog не работает полностью

Программа Python работает нормально и завершается, если я вручную запускаю ее с терминала.

$ python /home/pi/Documents/Project/Base_Prog.py 

Мой кронтаб настроен так:

# For example, you can run a backup of all your user accounts 
# at 5 a.m every week with: 
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/ 
# 
# For more information see the manual pages of crontab(5) and cron(8) 

SHELL=/bin/sh 
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 

# m h dom mon dow command 

@reboot /usr/bin/python /home/pi/Documents/Project/Base_Prog.py 

0 * * * * /usr/bin/python /home/pi/Documents/Project/Base_Prog.py 

0 * * * * /usr/bin/python /home/pi/Documents/SimpleCronTest.py 

Позвольте мне прояснить, хотя, я последовал предложения on this similar post. Я попробовал простой тестовый сценарий, который создает выходной файл и работал. Однако под тем же самым crontab с теми же настройками моя программа не завершается.

Интересным моментом является то, что с помощью TOP, когда сценарий должен начаться, окно Python кратковременно появляется, прежде чем снова исчезнет. Поэтому я предполагаю, что cron по крайней мере работает.

Я добавил:

#!/usr/bin/env 

Python строку в верхней части файла Base_Prog.py. Программа My Python - это скребок API, который находит свои входы из одного файла и записывает результаты в другой, все файлы в каталоге проекта имеют полные права на запись, используя chmod 777.

Я в затруднении относительно того, что вызывает это.

UPDATE

Бревно выход как для простого теста и моей программы в системном журнале является:

Apr 2 14:29:01 raspberrypi CRON[1455]: (pi) CMD (python /home/pi/Documents/Project/Base_Prog.py) 
Apr 2 14:29:01 raspberrypi CRON[1456]: (pi) CMD (python /home/pi/Documents/CronTest.py) 
+0

Какую работу выполняет ваш скрипт? – luminousmen

+0

Введите код вашего скрипта здесь –

ответ

0

Я думаю, что полное решение:

Сначала добавьте притон линию на наверху вашего сценария python:

#!/usr/bin/env python 

Сделайте скрипт исполняемым с CHMOD + х

Если сценарий работы с стандартный вывод или, если вам нужно знать, что это не так:

0 * * * * /usr/bin/python /home/pi/Documents/Project/Base_Prog.py >> tmp.log 

И только уточнить:

0 * * * * -means the cron will run always when the minutes are 0 (hourly) 
+0

Я тестировал с и без линии SHEBANG.Сама программа и все файлы в каталоге имеют все необходимые разрешения от chmod 777, читать записи и исполняемые файлы. Я добавил >> tmp.log, но я не могу найти какой-либо вывод в каталоге после его запуска. Заметьте, я меняю время на пару минут в будущем, когда я тестирую, я не жду каждый час каждый раз, если это то, что вы подразумеваете под последней строкой. –

0

Вам нужно см. вывод cron для любых подсказок, а не только его запуск с терминала. Возможно, есть некоторые ошибки разрешения/собственности или что-то в этом роде. От исполнения хрон, вы можете отправить вывод в файл для просмотра:

0 * * * * python /home/pi/Documents/Project/Base_Prog.py 1> /dev/null 2> /home/pi/Documents/Project/Base_Prog.err 

и вы можете просматривать /home/pi/Documents/Project/Base_Prog.err после того, как ключи. Или вы также можете отправить его по электронной почте:

0 * * * * python /home/pi/Documents/Project/Base_Prog.py 1> /dev/null 2>&1 | mail -s "Base Program Output" [email protected]