门户网站申请,湖南张家界,vps怎么建多个网站,百度推广关键词多少合适背景
为了输出执行命令的日志#xff0c;主要是执行时间很长#xff0c;而且分批输出日志的命令。
代码
func Execute(){command : exec.Command(执行命令)// 隐藏黑色窗口command.SysProcAttr syscall.SysProcAttr{CreationFlags: 0x08000000}// 输出日…背景
为了输出执行命令的日志主要是执行时间很长而且分批输出日志的命令。
代码
func Execute(){command : exec.Command(执行命令)// 隐藏黑色窗口command.SysProcAttr syscall.SysProcAttr{CreationFlags: 0x08000000}// 输出日志OutputLog(command)
}func outputLog(cmd *exec.Cmd) string {cmd.Stdin os.Stdinvar wg sync.WaitGroupwg.Add(2)//捕获标准输出stdout, err : cmd.StdoutPipe()if err ! nil {log.Error(INFO:, err)os.Exit(1)}readOut : bufio.NewReader(stdout)go func() {defer wg.Done()getOutput(readOut)}()//捕获标准错误stderr, err : cmd.StderrPipe()if err ! nil {log.Error(ERROR:, err)os.Exit(1)}readErr : bufio.NewReader(stderr)go func() {defer wg.Done()getOutput(readErr)}()//执行命令err cmd.Run()if err ! nil {return }wg.Wait()
}func getOutput(reader *bufio.Reader) string {outputBytes : make([]byte, 200)for {n, err : reader.Read(outputBytes)if err ! nil {if err io.EOF {break}//输出屏幕内容log.Error(err)}output : string(outputBytes[:n])//输出屏幕内容log.Info(output)}
}