|
@@ -0,0 +1,80 @@
|
|
|
|
+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
|
|
|
|
+}
|