如何通过用Python编写的CGI脚本来执行bash脚本?

2024-05-16 09:39:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用Python编写的CGI脚本来执行bash脚本,但是它只有在我手动运行Python脚本时才能正常工作。当我通过浏览器运行时,CGI执行返回200,但是bash脚本没有运行。在

这里有一个例子来说明我要做的,但是用两个简单的脚本来解释,好吗?在

cgi脚本是在以下apache目录中创建的,可以毫无问题地访问: /_测试.cgi

以下是raf的内容_测试.cgi脚本:

#!/usr/bin/python3.5
import subprocess
import cgi, cgitb
cgitb.enable()

print ("Content-type:text/html\r\n\r\n")
command = ['./raf.sh']
subprocess.Popen(command)

在同一个目录中“/var/www/cgi-bin/”一个名为皇家海军创建于: /var/www/cgi-bin/皇家海军

以下是皇家海军脚本:

^{pr2}$

注意:在我使用python subprocess模块运行linux命令的测试中,一切都运行得很好,但在本例中,我尝试通过python CGI运行另一个脚本,它不工作,也不显示错误消息。在

你能帮帮我吗?在


Tags: import目录脚本bashbinvarwwwcommand
1条回答
网友
1楼 · 发布于 2024-05-16 09:39:22

好吧,我肯定找到了。在

问题是,在web上运行脚本之前,您先手动运行脚本。在

这导致"/tmp/rafael.txt"被创建,由您的用户拥有。{用户已经可以向服务器写入该文件(包括该用户的文件),因为该文件已经存在。在

解决方案很简单:删除"/tmp/rafael.txt"。那我敢打赌你的剧本很管用。在

相关问题 更多 >