скрипт python не запускается из cron

У меня есть сценарий python start.py, который хорошо работает из командной строки. В нем только одно утверждение (выведите «привет»). РЕДАКТИРОВАТЬ: start.py также содержит рабочую директиву интерпретатора в первой строке.

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

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

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

$ 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

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


person mit    schedule 07.06.2011    source источник
comment
Это может быть проблема владения файлом или разрешения.   -  person Cole    schedule 07.06.2011
comment
зачем вам вообще нужно "mit" в вашем crontab?   -  person This    schedule 07.06.2011
comment
Пожалуйста, опубликуйте содержимое вашего скрипта ... в первой строке необходимо указать ваш интерпретатор, например #!/usr/bin/python   -  person AJ.    schedule 07.06.2011
comment
Это сообщение об ошибке больше похоже на pam(7), чем на Python или cron(8). Что находится в вашем /etc/pam.d/cron файле? Требуются ли модули, которых не существует?   -  person sarnold    schedule 07.06.2011
comment
@Mike, возможно, системный администратор не хочет разрешать пользователю mit запускать произвольные события cron, но добавить это имеет смысл?   -  person sarnold    schedule 07.06.2011
comment
Похоже на ошибку PAM. Вы недавно обновляли PAM? Возможно, необходимо перезапустить crond   -  person John La Rooy    schedule 07.06.2011
comment
@Mike Я не уверен, что вы предлагаете, вы имеете в виду, что я мог бы обменять mit на root в строке crontab?   -  person mit    schedule 07.06.2011
comment
@mit, я много раз говорю, что нет смысла указывать пользователя для запуска от имени ...   -  person This    schedule 07.06.2011
comment
@Mike, как бы мне работать без пользователя? Вы имеете в виду root?   -  person mit    schedule 07.06.2011


Ответы (2)


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

person Haldean Brown    schedule 07.06.2011
comment
я постараюсь. Я заметил, что скрипт cron работал раньше, но в какой-то момент больше не выполнялся. - person mit; 07.06.2011
comment
Большое спасибо. Это сделал перезапуск cron. :) - person mit; 07.06.2011

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

* * * * * mit /usr/bin/python /home/mit/dev/start.py
person JiminyCricket    schedule 07.06.2011
comment
Это может не быть проблемой, если файл преобразован в исполняемый файл и содержит директиву интерпретатора в качестве первой строки. - person AJ.; 07.06.2011
comment
извините за неполную публикацию. Я перепробовал все комбинации с питоном или без него, также есть строка shebang с правильным интерпретатором. сценарий работает из командной строки, когда я запускаю /home/mit/dev/start.py как пользователь mit - person mit; 07.06.2011