【发布时间】:2016-08-09 20:42:55
【问题描述】:
我正在尝试在 Django 中运行脚本。该脚本需要使用 sudo 运行,并且我已经设置了 sudoers 文件,以便可以在不输入 sudo 密码的情况下执行命令。当我使用默认测试服务器时,即>python manage.py runserver 0.0.0.0:8000,脚本执行没有问题。但是,使用 Nginx 和 uWSGI 部署 Django 后,命令失败并返回响应
sudo: no tty present and no askpass program specified
我是否遗漏了某种配置?
我正在使用子进程执行脚本,Django视图内的代码是这样的:
subprocess.check_output( "sudo /path/to/file/fileName.sh", shell=True)
【问题讨论】:
-
你确定即使是运行 uwsgi 的用户也有权在不提供密码的情况下运行脚本?您是否检查过您的 sudoers 文件不包含
requiretty选项? -
如果你能编写一个 python 代码来执行脚本所做的事情并将该 python 代码放在你的视图中,那就更好了。
标签: python django shell ubuntu nginx