python脚本不能从cron运行

问题描述:

我有一个python脚本“start.py”,它可以很好地从命令行执行。只有一个陈述(打印“你好”)。编辑:start.py在第一行也包含一个工作的解释器指令。python脚本不能从cron运行

当我运行从一个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 

我发现了几个答案和解决方案,看起来相同,但没有任何帮助。我错过了什么?

+0

它可能是文件的所有权或权限问题。 – Cole 2011-06-07 01:06:56

+0

为什么你甚至需要'mit'在你的crontab中? – 2011-06-07 01:06:57

+1

请发布您的脚本的内容......第一行需要指定您的解释器,例如'#!/ usr/bin/python' – 2011-06-07 01:07:53

PAM的最新更新打破了cron。尝试重新启动计算机(或重新启动与sudo /etc/init.d/cron restart cron)

+0

我会尝试。我注意到cron脚本以前工作过,但在某个时间点不再执行。 – mit 2011-06-07 10:53:07

+0

非常感谢。一个cron重启做到了。 :) – mit 2011-06-07 12:27:56

你忘了在它前面添加python。

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

如果文件被chmoded为可执行文件并且它包含解释器指令作为第一行,那么这可能不是问题。 – 2011-06-07 01:10:38

+0

对于不完整的发帖感到抱歉。我尝试了所有带有或不带有python的组合,并且带有正确解释器的shebang行也在那里。该脚本从命令行工作时,我开始'/home/mit/dev/start.py'作为用户'mit' – mit 2011-06-07 10:56:14