Crontab fails to execute Python script

情到浓时终转凉″ 提交于 2019-11-27 06:52:04

问题


crontab fails to execute a Python script. The command line I am using to run the Python script is ok.

These are solutions I had tried:

  • add #!/usr/bin/env python at the top of the main.py
  • add PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin at the top of crontab
  • chmod 777 to the main.py file
  • service cron restart

my crontab is:

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

*/1 * * * * python /home/python_prj/main.py

and the log in /var/log/syslog is:

Nov  6 07:08:01 localhost CRON[28146]: (root) CMD (python /home/python_prj/main.py)

and nothing else.

The main.py script calls some methods from other modules under python_prj, does that matter?

Anyone can help me?


回答1:


The main.py script calls some methods from other modules under python_prj, does that matter?

Yes, it does. All modules need to be findable at run time. You can accomplish this in several ways, but the most appropriate might be to set the PYTHONPATH variable in your crontab.

You might also want to set the MAILTO variable in crontab so you get emails with any tracebacks.

[update] here is the top of my crontab:

www:~# crontab -l

DJANGO_SETTINGS_MODULE=djangocron.settings
PATH=...
PYTHONPATH=/home/django
MAILTO="cron-notices@example.com"
...
# m h  dom mon dow   command
10-50/10 * * * *               /home/django/cleanup_actions.py
...

(running cleanup actions every 10 minutes, except at the top of the hour).




回答2:


Any file access in your scripts? And if so, have you used relative paths (or even: no explicit path) in your script?
When run from commandline, the actual folder is 'your path', where you start the script from. When run by cron, 'your path' may be different depending on environment variables.
So try using absolute paths to any files you access.




回答3:


Check the permissions of the script. Make sure that it's executable by cron-- try chmod +x main.py.



来源:https://stackoverflow.com/questions/13250365/crontab-fails-to-execute-python-script

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!