From e6a87a6c0464355c0152985e8807fb7358d5c231 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Thu, 2 Jan 2025 16:08:26 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E9=87=8D=E8=BD=BD=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/gamedata/reader.go | 7 ++++++ .../pkg/github.com/name5566/leaf/leaf.go | 24 ++++++++++++------- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/src/server/gamedata/reader.go b/src/server/gamedata/reader.go index 9f8287e3..71ce208a 100644 --- a/src/server/gamedata/reader.go +++ b/src/server/gamedata/reader.go @@ -51,6 +51,13 @@ func init() { } +func Reload() { + for k := range G_AllConfigsJsonData { + InitCfg(k) + log.Debug("配置已重新加载:%s", k) + } +} + func readRfNew(st interface{}, ralativePath string) *recordfile.RecordFile { rf, err := recordfile.New(st) if err != nil { diff --git a/src/server/pkg/github.com/name5566/leaf/leaf.go b/src/server/pkg/github.com/name5566/leaf/leaf.go index 39939ebf..341b7ffb 100644 --- a/src/server/pkg/github.com/name5566/leaf/leaf.go +++ b/src/server/pkg/github.com/name5566/leaf/leaf.go @@ -1,12 +1,12 @@ package leaf import ( - "fmt" "os" "os/signal" mergeCluster "server/cluster" sconf "server/conf" "server/game" + "server/gamedata" "server/pkg/github.com/name5566/leaf/cluster" "server/pkg/github.com/name5566/leaf/conf" "server/pkg/github.com/name5566/leaf/console" @@ -45,11 +45,19 @@ func Run(mods ...module.Module) { // close c := make(chan os.Signal, 1) - signal.Notify(c, os.Interrupt, syscall.SIGTERM, syscall.SIGINT, syscall.SIGKILL) - sig := <-c - fmt.Printf("Leaf closing down (signal: %v)\n", sig.String()) - console.Destroy() - cluster.Destroy() - module.Destroy() - game.Destroy() + signal.Notify(c, syscall.SIGTERM, syscall.SIGINT) + for { + sig := <-c + if sig == syscall.SIGINT { + gamedata.Reload() + continue + } + log.Debug("Leaf closing down (signal: %v)\n", sig.String()) + console.Destroy() + cluster.Destroy() + module.Destroy() + game.Destroy() + os.Exit(1) + } + }