最近、Flask フレームワークを使用して HTTP 経由でプロセスを開始する短い Python スクリプトを開発しました (こちらを参照)。ここで、開始されたプロセスの標準ストリーム (特にstdoutとstderrに関心があります) を Web に「パイプ」するための適切なテクノロジについての質問があります。
これを達成するための最も適切な方法は何だと思いますか? 最初に、完全に適合する websocket を考えました。しかし、ほとんどの実装は、接続されたクライアントを覆い隠しているように思えました。それらすべてに出力を送信できるようにするために、この情報が必要だと思います。
編集:私の質問は少し不明確だったと思います:実行されたコマンドの出力をWebインターフェースで見たいです。したがって、実行されたプロセスの stdout/stderr から HTTP を介して何らかの方法で Web インターフェイスにデータを「伝達」する必要があります。開始されたコマンドが、ある程度の (より長い) 時間実行される可能性があります。コマンドを呼び出す例dd
は、指定された設定で何も出力しないため、代表的なものではありません。確かに、subprocess.Process
クラスとオブジェクトの出力を使用する必要があります (たとえば、communicate()
メソッドを使用して)。