2011-06-07 107 views
4

我有一個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

回答

3

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

0

你忘了在它前面添加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