我不知道如何在运行二进制文件时做一些事情。
cmd = exec.Command("./app-godemon-app-godemon-tmp-generated")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Run()
fmt.Println("A")
文件app-godemon-app-godemon-tmp-generated
是运行在端口8000上的REST API应用程序,我想在命令行中打印一些东西,而这个API正在运行,但fmt.Println()
只有在停止app-godemon-app-godemon-tmp-generated
进程后才运行。
你可以这样做:
cmd = exec.Command("./app-godemon-app-godemon-tmp-generated")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
go cmd.Run()
fmt.Println("A")
但是如果你的命令调用依赖于彼此,你必须添加更多的代码,如
// call command...
// initialize
finish := make(chan struct{}) // i em using empty struct as data is not important
go func() {
// do staff...
// finished so send signal
finish <- struct{}{}
}()
//do staff...
<-finish
// call dependent commands, as line above halts progrum until something arrives from channel
你应该将这个逻辑封装在返回通道并接受函数
的函数中