我在 Python CGI 腳本中運行子進程時遇到問題。我將在 python CGI 腳本中將 python 文件作為子進程運行。script.py#!enable debuggingimport cgitbcgitb.enable()print("Content-Type: text/html;charset=utf-8")print()import subprocessp = subprocess.Popen(["sudo", "/usr/bin/python3", "test.py"], stdout=subprocess.PIPE)test.pyf.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 腳本運行時,我無法收到任何錯誤。我該如何解決這個問題?
1 回答

aluckdog
TA貢獻1847條經驗 獲得超7個贊
如果 sudo 不起作用,請查看系統日志??赡軙幸恍┫⒖梢詭椭M行調試。文件已存在/var/log
,如果您按時間列出,ls -t
您將看到哪些文件剛剛發生了更改。
首先嘗試不使用 sudo。將您的文件放在不需要 sudo 權限的地方,例如/tmp/test.txt
. 然后你就知道問題是出在 sudo 還是其他什么地方了。
添加回答
舉報
0/150
提交
取消