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)
コードを Ubuntu10:04
から12:04
呼び出しに移動した後、時々p.stdout.read()
失敗し始めました。失敗すると、ログ ファイルに最後に表示されるのはclosed stdin
、nginx が502 Bad Gateway
ページを表示することです。