Dalam senario ini, anda menyasarkan untuk menstrim keluaran perintah yang dilaksanakan ke kedua-dua proses induk dan ke log fail. Walau bagaimanapun, cmd.StdoutPipe standard mengembalikan hasil akhir sebagai rentetan, yang menjadi had untuk proses yang berjalan lama.
Kod yang disediakan, yang menggunakan exec.Command, StdoutPipe dan bufio.NewScanner, berfungsi seperti yang dimaksudkan. Ia secara berkesan menstrim output proses kanak-kanak, mencetaknya ke konsol dan log masuk dalam masa nyata. Output langsung proses anak ditangkap dan dipaparkan semasa ia berlaku.
Jika kod itu tidak berfungsi untuk anda, pertimbangkan sebab berikut:
Jika arahan tidak mencetak baris baharu, terdapat kaedah alternatif untuk menstrim output:
Adalah penting untuk diingat bahawa jika proses anak menulis ke strim stdout dan stderr lalai, ia akan dibuang melainkan dibaca secara eksplisit. Membaca strim ini memastikan anda tidak terlepas sebarang output atau mesej ralat, walaupun proses anak biasanya tidak keluar ke strim ini.
Atas ialah kandungan terperinci Bagaimana untuk Menstrim Output Perintah Masa Nyata ke Proses Induk dan Fail Log?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!