2011-06-07 2 views
4

У меня есть сценарий python «start.py», который хорошо выполняется из командной строки. В нем есть только одно утверждение (напечатайте «привет»). EDIT: start.py содержит также директиву рабочего интерпретатора в первой строке.сценарий python не работает от cron

Как только я запускаю скрипт из хрон, каждый раз, когда он стреляет есть сообщение в системный журнал:

Jun 7 02:57:01 mit CRON[23275]: Module is unknown 

Я уже пробовал добавить PATH и информацию PYTHONPATH в файл хрон:

$ cat /etc/cron.d/my_cron 
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 
PYTHONPATH=/usr/lib/python2.6:/usr/lib/python2.6/plat-linux2:/usr/lib/python2.6/lib-tk:/usr/lib/python2.6/lib-old:/usr/lib/python2.6/lib-dynload:/usr/lib/python2.6/dist-packages:/usr/lib/pymodules/python2.6:/usr/lib/pymodules/python2.6/gtk-2.0:/usr/local/lib/python2.6/dist-packages 
* * * * * mit /home/mit/dev/start.py 

Я нашел несколько ответов и решений, которые кажутся одинаковыми, но ничего не помогло мне. Что мне не хватает?

+0

Это может быть проблема с файлом или разрешением. – Cole

+0

Почему вам даже нужно «мить» в вашем кронтабе? –

+1

Пожалуйста, разместите содержимое своего сценария ... в первой строке должен быть указан ваш интерпретатор, например. '#!/usr/bin/python' –

ответ

3

Недавнее обновление PAM сломалось cron. Попробуйте перезагрузить компьютер (или перезапустить cron с помощью sudo /etc/init.d/cron restart)

+0

, я попробую. Я заметил, что скрипт cron работал раньше, но не выполнялся в какой-то момент времени. – mit

+0

Большое вам спасибо. Перезапуск cron сделал это. :) – mit

0

Вы забыли добавить python перед ним.

* * * * * mit /usr/bin/python /home/mit/dev/start.py 
+3

Это может быть не проблема, если файл chmoded для исполняемого файла и содержит директиву интерпретатора в качестве первой строки. –

+0

извините за неполную проводку. Я пробовал все комбинации с или без python, также есть строка shebang с правильным интерпретатором. сценарий работает из командной строки, когда я запускаю '/home/mit/dev/start.py' в качестве пользователя 'mit' – mit

Смежные вопросы