我在通常的地方创建了一个自定义管理命令作为 py 文件。
计时码表安装在正确的位置并且同步正常。
我已经按照以下方式创建了 cron 作业
* * * * * /home/shofty/virtualenvs/webbricks/bin/chronograph -e /home/shofty/virtualenvs/webbricks/bin/activate_this.py -p /home/shofty/virtualenvs/webbricks/website
我还尝试了以下方法,因为我认为它可能是正确的,但文档中的内容不正确
* * * * * /home/shofty/virtualenvs/webbricks/bin/chronograph -e /home/shofty/virtualenvs/webbricks/bin/activate_this.py -p /home/shofty/virtualenvs/webbricks/website/manage.py cron
我已经添加了 manage.py cron,因为您运行它来告诉计时功能寻找需要运行的作业。如果我在我的虚拟环境中并且我运行 manage.py cron 它工作并且作业运行。
这两个作业都无法运行,但是当我尝试以 su 或我的用户身份手动运行它们时,它们因权限被拒绝而失败。不确定他们指的是什么许可。以前有人遇到过这个吗?
最佳答案
答案是 chronograph.sh 已被 chronograph 取代。尽管这据说能够激活一个环境,但它并没有足够早地导入 argparse,据我所知,它不是内置于 python 2.5,而是在 2.6 中。然后就是为计时码表的脚本找到正确的参数组合,供引用的是 -p 和 -e,但不是 -s。
我还必须以 root 身份运行脚本,但将脚本定位到用户 virtualenv 中。
最后,我还必须将包目录的站点路径添加到计时码表脚本中,因为在我这样做之前它无法找到 argparse。
关于python - 由于权限问题,django-chronograph 脚本不会从 cron 作业运行或手动运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7432422/