gpt4 book ai didi

python - 如何从 django/wsgi 中调用 bash 进程?

转载 作者:太空宇宙 更新时间:2023-11-03 11:36:05 24 4
gpt4 key购买 nike

我正在为 django 站点使用 mod_wsgi apache2 适配器,我喜欢在 View 中调用一些 bash 进程,使用通常的方法

...
p = subprocess.Popen("/home/example.com/restart-tomcat.sh", shell=True)
sts = os.waitpid(p.pid, 0)[1]
...

这段代码在普通的 python shell 中运行完美,但在 django 中调用时什么也不做(我现在可以跟踪)。我是否缺少一些 wsgi 约束?该脚本有 755 个权限,因此它应该是可执行的。

快速测试

p = subprocess.Popen("date >> home/example.com/wsgi-test.txt", shell=True)
sts = os.waitpid(p.pid, 0)[1]

表明它甚至不执行琐碎的命令。我现在没有想法,感谢任何输入。

谢谢。

最佳答案

脚本本身可能有 755 权限,但它调用的东西可能没有正确的权限。特别是如果你有 tomcat 在端口 80 上运行,这是一个特权端口。

有很多方法可以绕过这类事情(setuid、sudo),但您最好确切地知道自己在做什么。

我会更改您的 Popen 调用以打开一个包含内容 date >>/home/example.com/test.txt 的不同脚本,只是为了查看它是否正在执行它,并且那么您可以担心尝试调试权限。

关于python - 如何从 django/wsgi 中调用 bash 进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2608464/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com