私のPythonプログラムでは、で接続された2つのsubprocesses
と、に接続された1つのstdin
が接続されています。私の問題は、データフローが終了すると、ctrl+c
を押すまでサブプロセスがハングすることです。サブプロセスが私のパイプを開いているように見えます。パイプを流れるデータがいつ手作業で閉じることができるかを知ることができたら、パイプを通るデータがいつ終了するかを確認する方法
def write(tag_name):
p_r, p_w = os.pipe()
pv = subprocess.Popen('pv', stdin=None, stdout=p_w)
dd = subprocess.Popen('dd bs=64k of=/dev/nst0'.split(), stdin=p_r, stdout=None)
dd.wait()
'' pv'行にOSRrror:[Errno 9] Bad file descriptor'を出しています。 –
Pythonマニュアル 'subprocess.STDOUT'を見ると、' Popen.stderr'の引数としてしか使用できません。あなたが言ったように、 'stdout = subprocess.PIPE'を渡すことができます。 –
申し訳ありませんが、タイプミス! 'subprocess.PIPE'に固定 –