このシナリオでは、実行されたコマンドの出力を親プロセスとログの両方にストリーミングすることを目的としています。ファイル。ただし、標準の cmd.StdoutPipe は最終結果を文字列として返すため、長時間実行プロセスの制限となります。
exec.Command を利用する提供されたコードStdoutPipe および bufio.NewScanner は意図したとおりに機能します。子プロセスの出力を効果的にストリーミングし、コンソールに出力してリアルタイムでログに記録します。子プロセスのライブ出力は、発生時にキャプチャされ、表示されます。
コードが機能しない場合は、次の理由を考慮してください。
コマンドが改行を出力しない場合は、出力をストリーミングする別の方法があります。
子プロセスがデフォルトの stdout ストリームと stderr ストリームに書き込む場合、それらは明示的に読み込まれない限り破棄されることに留意することが重要です。これらのストリームを読み取ることで、子プロセスが通常これらのストリームに出力しない場合でも、出力やエラー メッセージを見逃すことがなくなります。
以上がリアルタイム コマンド出力を親プロセスとログ ファイルにストリーミングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。