我在 Django 中使用以下 Python 代码从 Django 运行 Perl 脚本。
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
页面。