package main import ( "os" "os/signal" "pro2d/conf" "pro2d/src/components/logger" "pro2d/src/components/net" _ "pro2d/src/plugin" "syscall" ) func main() { err := make(chan error) stopChan := make(chan os.Signal) signal.Notify(stopChan, syscall.SIGTERM, syscall.SIGINT, syscall.SIGKILL) userChan := make(chan os.Signal) signal.Notify(userChan, syscall.SIGUSR1, syscall.SIGUSR2) s := net.NewServer(conf.GlobalConf.GameConf) go func() { err <- s.Start() }() for { select { case e := <- err: logger.Error("game server error: %v", e) return case <-stopChan: s.Stop() logger.Debug("game stop...") return case u := <-userChan: logger.Debug("userChan .. %v",u.String()) s.LoadPlugin() } } }