python - Django Apache - 以根用户身份运行脚本

标签 python django apache mod-wsgi

我的 django 项目使用“at”调度程序在预定时间调用 python 文件。这是在我的 models.py 中执行的

command = 'echo "python /path/to/script.py params" | /usr/bin/at -t [time] &> path/to/at.log'
status = os.system(command)

其中 [时间] 是计划时间。 当我在 Django Dev 服务器中运行它时,它工作得很好(我通常以 root 身份运行,但它也适用于其他用户) 但是当我使用 mod_wsgi 在 Apache 上部署我的应用程序时,它不起作用。 at logs 显示作业已安排但未执行。 我尝试了一切,从将所有权更改为 www-data、权限,使其成为所有用户的可执行文件,再到 setuid 到 root(巨大的安全问题) 我最不想做的就是以 root 用户身份运行 apache。

最佳答案

使用croncelery对于计划任务。如果你需要以 root 身份运行某些东西,将脚本重新编写为一个简单的守护进程并以 root 身份运行它是有意义的,你可以使用 zeromq 很容易地向它传递命令。 .

关于python - Django Apache - 以根用户身份运行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7043846/

相关文章:

python - 迭代多个 numpy 数组并处理当前和先前元素的有效方法?

python - 进行子选择的 django 方法是什么?

apache - 如何在 xampp 上安装 apxs

security - .htaccess 密码保护有多安全?

apache - Solr Cell NoSuchMethodError

java - 生成用于 python 请求的证书获取 PEM lib 错误

python - 如何使用正则表达式向前查找并找到所需字符串的结尾?

python - 在 Python 中,如果给出错误的参数,则返回 “None” 而不是创建新实例

javascript - x-editable - POST 成功后运行代码?

django - {{ services|pprint|safe }} 中的 '|' 在 django 中意味着什么?