sunsheng 1 год назад
Родитель
Сommit
19ed703b33
3 измененных файлов с 86 добавлено и 1 удалено
  1. 80 0
      package/main.go
  2. 1 1
      package/start.bat
  3. 5 0
      package/stop.bat

+ 80 - 0
package/main.go

@@ -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
+}

+ 1 - 1
package/start.bat

@@ -5,7 +5,7 @@ taskkill /IM copter-train.exe /F
 taskkill /IM config-server.exe /F
 
 echo 启动bus服务中...
-cd "..\nats-bus"
+cd ".\nats-bus"
 start cmd /c "config-server.exe"
 
 timeout /t 3

+ 5 - 0
package/stop.bat

@@ -0,0 +1,5 @@
+@echo off
+chcp 65001
+
+taskkill /IM copter-train.exe /F
+taskkill /IM config-server.exe /F