|
|
@ -6,7 +6,6 @@ import ( |
|
|
"net/rpc" |
|
|
"net/rpc" |
|
|
"net/rpc/jsonrpc" |
|
|
"net/rpc/jsonrpc" |
|
|
"os" |
|
|
"os" |
|
|
"os/signal" |
|
|
|
|
|
"scagnet/config" |
|
|
"scagnet/config" |
|
|
"scagnet/core" |
|
|
"scagnet/core" |
|
|
"scagnet/util" |
|
|
"scagnet/util" |
|
|
@ -40,11 +39,9 @@ func waitElegantExit(signalChan chan os.Signal) { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
func main() { |
|
|
func main() { |
|
|
// fmt.Println("JSON RPC服务端")
|
|
|
|
|
|
// 初始化日志
|
|
|
// 初始化日志
|
|
|
logger := util.NewProductionLogger() |
|
|
logger := util.NewProductionLogger() |
|
|
defer logger.Sync() |
|
|
defer logger.Sync() |
|
|
logger.Info("JSON RPC服务端启动") |
|
|
|
|
|
|
|
|
|
|
|
// 读取配置文件
|
|
|
// 读取配置文件
|
|
|
util.ReadConfig() |
|
|
util.ReadConfig() |
|
|
@ -86,20 +83,21 @@ func main() { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
os.Exit(0) |
|
|
// 优雅退出
|
|
|
// 优雅退出
|
|
|
// quit := make(chan os.Signal)
|
|
|
// quit := make(chan os.Signal)
|
|
|
// signal.Notify(quit, os.Interrupt, os.Kill)
|
|
|
// signal.Notify(quit, os.Interrupt, os.Kill)
|
|
|
// v := <-quit
|
|
|
// v := <-quit
|
|
|
// fmt.Println("退出信号:", v)
|
|
|
// fmt.Println("退出信号:", v)
|
|
|
|
|
|
|
|
|
c := make(chan os.Signal) |
|
|
// c := make(chan os.Signal)
|
|
|
// SIGHUP: terminal closed
|
|
|
// SIGHUP: terminal closed
|
|
|
// SIGINT: Ctrl+C
|
|
|
// SIGINT: Ctrl+C
|
|
|
// SIGTERM: program exit
|
|
|
// SIGTERM: program exit
|
|
|
// SIGQUIT: Ctrl+/
|
|
|
// SIGQUIT: Ctrl+/
|
|
|
signal.Notify(c, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT) |
|
|
// signal.Notify(c, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT)
|
|
|
|
|
|
|
|
|
// 阻塞,直到接受到退出信号,才停止进程
|
|
|
// 阻塞,直到接受到退出信号,才停止进程
|
|
|
waitElegantExit(c) |
|
|
// waitElegantExit(c)
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|