次のコマンドを使用してシェル コマンドを実行しています (サブプロセスを作成しています)。
cmd = "ls"
process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True)
次に、終了時にリターンコードを取得したいと思います。またはを使用する必要がありますwait()
かpoll()
?私には忙しい待機に囲まれているにwait()
等しいようです。poll()
何かのようなもの:
while process.poll() == None:
time.sleep(0.5)
バッファがいっぱいになるとwait()
デッドロックが発生する可能性があることを読みました。上記のように使用すると、デッドロックが発生する可能性がありますか? これが本当なら、問題を解決するために使用する必要がありますか? 最近
は subprocess に興味があるときだけ使っています。stdout/stderr
process.poll()
process.comunicate()
process.comunicate()
stdout/stderr
前もって感謝します。