package main import ( "fmt" "os" "os/exec" "time" ) // go build -ldflags -H=windowsgui main.go func main() { dir := getPwd() configService := fmt.Sprintf("%s\\%s\\%s", dir, "nats-bus", "config-server.exe") copterService := fmt.Sprintf("%s\\%s", dir, "copter-train.exe") // 对应应用的路径 fmt.Println(configService) fmt.Println(copterService) // 先关闭应用 appNames := []string{"config-server.exe", "copter-train.exe"} for _, name := range appNames { err := killProcess(name) if err != nil { fmt.Printf("Error: %v\n", err) } } // 启动config-server cmd := exec.Command(configService) err := cmd.Start() if err != nil { fmt.Printf("Error: %v\n", err) return } // 等待config-server启动 time.Sleep(3 * time.Second) // 启动copter-train cmd1 := exec.Command(copterService) err1 := cmd1.Start() if err1 != nil { fmt.Printf("Error: %v\n", err1) } } // func startApp(app string) error { // cmd := exec.Command(app) // err := cmd.Start() // if err != nil { // return err // } // return nil // } func getPwd() string { dir, err := os.Getwd() if err != nil { fmt.Println("Error:", err) return "" } fmt.Println("Current directory:", dir) return dir } func killProcess(name string) error { cmd := exec.Command("taskkill", "/IM", name, "/F") err := cmd.Run() if err != nil { return fmt.Errorf("failed to kill process %s: %w", name, err) } return nil }