3
我在Django中使用以下Python代碼從Django運行Perl腳本。從Django調用subprocess.Popen
def run_command(cmd, input_data=None):
assert type(cmd) == list
stdout = ''
stderr = ''
p = subprocess.Popen(cmd,
bufsize=1000*1000,
stdin=subprocess.PIPE,
stderr=subprocess.PIPE,
stdout=subprocess.PIPE)
if (input_data):
p.stdin.write(input_data)
p.stdin.close()
log("closed stdin")
stdout = p.stdout.read()
log("read stdout")
stderr = p.stderr.read()
return (stdout, stderr)
從Ubuntu的10:04
代碼移動到12:04
後調用p.stdout.read()
已經開始,現在再失敗。當它失敗時,我在日誌文件中看到的最後一件事是closed stdin
和nginx顯示502 Bad Gateway
頁面。
你試過'stdout,stderr = p.communicate(input_data)'?順便說一句,你可以使用'bufsize = -1'(系統默認)。 – jfs
我剛剛嘗試過,但不幸的是仍然在p.communicate(input_data)上出現故障。 – FunLovinCoder
追溯是什麼? – jfs