0
ノードをブートストラップするには、Golangコードでknife bootstrapコマンドを使用しています。いくつかの時間はレシピで待っており、それは10分以上待つ。そのような場合、私はエラー "エラー:IOStreamクローズ"を取得しています。時間制限を増やす方法はありますか?また、私はcmdの出力とエラーストリームからログを読んでいます。Golangスキャン機能で「ERROR:IOError:closed stream」を処理する方法は?
func executeCMDWorkstation(cmd *exec.Cmd, projectId, cr_id string) bool {
stdout, err3 := cmd.StdoutPipe()
if err3 != nil {
utils.Info.Println(err3)
return false
}
defer stdout.Close()
stderr, err4 := cmd.StderrPipe()
if err4 != nil {
utils.Info.Println(err4)
return false
}
defer stderr.Close()
//cmd.Stdout = os.Stdout
//cmd.Stderr = os.Stderr
multi := io.MultiReader(stdout, stderr)
inp := bufio.NewScanner(multi)
err := cmd.Start()
if err != nil {
utils.Info.Println("Error while creating client", err)
return false
}
fmt.Println("Generating logs**************")
for inp.Scan() {
line := inp.Text()
if cr_id == "" {
lg.SendDebugLogs(line, "projects/logs", projectId, "chef")
} else {
lg.SendDebugLogs(line, "changeRequests/logs", cr_id, "chef")
}
}
exitStatus := cmd.Wait()
if exiterr, ok := exitStatus.(*exec.ExitError); ok {
utils.Info.Println("************ Exit Status is:", exiterr, "************")
return false
}
return true
このプロセスを改善するための助けがあれば幸いです。