diff --git a/internal/apps/app_cmd.go b/internal/apps/app_cmd.go index f1faea09..e4b317e1 100644 --- a/internal/apps/app_cmd.go +++ b/internal/apps/app_cmd.go @@ -209,7 +209,7 @@ func (this *AppCmd) runStop() { fmt.Println(this.product+" stopped ok, pid:", types.String(pid)) } -// 重启 +// RunRestart 重启 func (this *AppCmd) RunRestart() { this.runStop() time.Sleep(1 * time.Second) diff --git a/internal/nodes/admin_node.go b/internal/nodes/admin_node.go index 65a0fa72..016525eb 100644 --- a/internal/nodes/admin_node.go +++ b/internal/nodes/admin_node.go @@ -20,6 +20,8 @@ import ( "os" "os/exec" "os/signal" + "path/filepath" + "strings" "syscall" "time" ) @@ -364,6 +366,16 @@ func (this *AdminNode) listenSock() error { } } + // 停止当前目录下的API节点 + var apiSock = gosock.NewTmpSock("edge-api") + apiReply, err := apiSock.Send(&gosock.Command{Code: "info"}) + if err == nil { + adminExe, _ := os.Executable() + if len(adminExe) > 0 && apiReply != nil && strings.HasPrefix(maps.NewMap(apiReply.Params).GetString("path"), filepath.Dir(filepath.Dir(adminExe))) { + _, _ = apiSock.Send(&gosock.Command{Code: "stop"}) + } + } + // 退出主进程 events.Notify(events.EventQuit) os.Exit(0)