From 5d9d54eadcf46bed6073cca6d166ee9849489e77 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Sat, 18 Oct 2025 18:02:32 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E9=80=80=E5=87=BA?= =?UTF-8?q?=E4=BF=A1=E5=8F=B7=E7=9B=91=E5=90=AC=E5=8A=9F=E8=83=BD=EF=BC=8C?= =?UTF-8?q?=E4=BC=98=E9=9B=85=E5=85=B3=E9=97=AD=E6=9C=8D=E5=8A=A1=E5=B9=B6?= =?UTF-8?q?=E8=BE=93=E5=87=BA=E7=9B=B8=E5=85=B3=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/main.go b/main.go index 9f070bf7..651fb08a 100644 --- a/main.go +++ b/main.go @@ -3,7 +3,10 @@ package main import ( "fmt" "net/http" + "os" + "os/signal" "sync" + "syscall" "time" _ "net/http/pprof" @@ -146,6 +149,8 @@ func main() { src.ConfigurationInit() app := src.AppEngine() + fmt.Printf("OMC Service %s\n\n", config.Version) + src.DefeatConfig(app) loadGlobalPre(app) @@ -156,11 +161,27 @@ func main() { loadServerWeb() + stopSignal() + // 首次安装启动记录 machine.Launch() wg.Wait() } +// stopSignal 监听退出信号 +func stopSignal() { + sigCh := make(chan os.Signal, 1) + signal.Notify(sigCh, syscall.SIGINT, syscall.SIGTERM) + wg.Add(1) + go func() { + defer wg.Done() + <-sigCh // 等待退出信号 + src.ConfigurationClose() + fmt.Println("\nStop Service... OK") + os.Exit(0) + }() +} + // loadGlobalPre 全局预加载 func loadGlobalPre(app *gin.Engine) { // Swagger 接口文档 @@ -185,6 +206,7 @@ func loadGlobalPre(app *gin.Engine) { go func(addr string) { defer wg.Done() for i := range maxRetries { + fmt.Printf("pprof HTTP on %s\n", addr) if err := http.ListenAndServe(addr, nil); err != nil { logger.Errorf("pprof run err:%v", err) time.Sleep(retryInterval) // 重试间隔时间 @@ -220,6 +242,7 @@ func loadServerRoute(app *gin.Engine) { go func(addr string, certFile string, keyFile string) { defer wg.Done() for i := range maxRetries { + fmt.Printf("API HTTPS on %s\n", addr) if err := app.RunTLS(addr, certFile, keyFile); err != nil { logger.Errorf("routeServer run tls err:%v", err) time.Sleep(retryInterval) // 重试间隔时间 @@ -233,6 +256,7 @@ func loadServerRoute(app *gin.Engine) { go func(addr string) { defer wg.Done() for i := range maxRetries { + fmt.Printf("API HTTP on %s\n", addr) if err := app.Run(addr); err != nil { logger.Errorf("routeServer run err:%v", err) time.Sleep(retryInterval) // 重试间隔时间 @@ -286,6 +310,7 @@ func loadServerWeb() { go func(addr string, certFile string, keyFile string) { defer wg.Done() for i := range maxRetries { + fmt.Printf("WEB HTTPS on %s\n", addr) if err := web.RunTLS(addr, certFile, keyFile); err != nil { logger.Errorf("webServer run tls err:%v", err) time.Sleep(retryInterval) // 重试间隔时间 @@ -302,6 +327,7 @@ func loadServerWeb() { go func(addr string) { defer wg.Done() for i := range maxRetries { + fmt.Printf("WEB HTTP on %s\n", addr) if err := web.Run(addr); err != nil { logger.Errorf("webServer run err:%v", err) time.Sleep(retryInterval) // 重试间隔时间