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