無期限に実行する必要があるサーバー コマンド ライン スクリプトのラッパーを作成しています。私がする必要があるのは、サブプロセスが終了するのを待たずに現在のスタウトを取得することです。
つまり、次を実行すると、すべて正常に動作します。
ls = Popen(["ls"], stdout=PIPE)
output = ls.stdout.read()
しかし、無期限に実行中のプログラムで同じことを行うと、次のようになります。
server = Popen(["python","-m","SimpleHTTPServer"], stdout=PIPE)
output = server.stdout.read()
それは戻ってこない...
更新:偶数
output = server.stdout.read(1)
ハング...
OSに依存しない方法でPopen(または同様のスレッド実装)から部分的な出力をキャプチャする方法があるかどうか知っていますか?