子进程未在 python cgi 脚本中运行

我在 Python CGI 脚本中运行子进程时遇到问题。


我将在 python CGI 脚本中将 python 文件作为子进程运行。


script.py


#!enable debugging

import cgitb

cgitb.enable()


print("Content-Type: text/html;charset=utf-8")

print()


import subprocess

p = subprocess.Popen(["sudo", "/usr/bin/python3", "test.py"], stdout=subprocess.PIPE)

test.py


f.open("test.txt", "a")

f.write("This is test")

f.close()

如果我script.py在控制台中运行,它会test.txt成功创建文件。但是如果我在带有 Python CGI 的浏览器上运行它,它无法创建test.txt.


我想,这可能是权限造成的,所以我尝试直接创建test.txt,script.py而不是在'test.py'上,它创建成功了。


所以,主要问题是Python CGI脚本无法运行子进程。


在浏览器上作为 Python CGI 脚本运行时,我无法收到任何错误。


我该如何解决这个问题?


交互式爱情
浏览 52回答 1
1回答

aluckdog

如果 sudo 不起作用,请查看系统日志。可能会有一些消息可以帮助您进行调试。文件已存在/var/log,如果您按时间列出,ls -t您将看到哪些文件刚刚发生了更改。首先尝试不使用 sudo。将您的文件放在不需要 sudo 权限的地方,例如/tmp/test.txt. 然后你就知道问题是出在 sudo 还是其他什么地方了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python