From 2addec5adf1c5f36c8e4fbcd40c9079867fc6a73 Mon Sep 17 00:00:00 2001 From: mountain Date: Tue, 22 Aug 2023 11:45:31 +0900 Subject: [PATCH] =?UTF-8?q?server=20stop=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server.go | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/server.go b/server.go index aa73093..e8245d2 100644 --- a/server.go +++ b/server.go @@ -100,17 +100,9 @@ func NewHTTPServerWithPort(serveMux *http.ServeMux, port int) *Server { server := &Server{ httpserver: &http.Server{Addr: addr, Handler: serveMux}, - interrupt: make(chan os.Signal, 1), } server.httpserver.SetKeepAlivesEnabled(true) - signal.Notify(server.interrupt, os.Interrupt, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT) - go func() { - c := <-server.interrupt - logger.Println("interrupt!!!!!!!! :", c.String()) - server.shutdown() - }() - return server } @@ -153,6 +145,14 @@ func (server *Server) shutdown() { } } +func (server *Server) Stop() { + if server.interrupt != nil { + server.interrupt <- os.Interrupt + } else { + server.shutdown() + } +} + // Start : func (server *Server) Start() error { if server.httpserver != nil { @@ -160,6 +160,15 @@ func (server *Server) Start() error { if r != nil { return r } + server.interrupt = make(chan os.Signal, 1) + signal.Notify(server.interrupt, os.Interrupt, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT) + + go func() { + c := <-server.interrupt + logger.Println("interrupt!!!!!!!! :", c.String()) + server.shutdown() + }() + proxyListener := &proxyproto.Listener{ Listener: ln, ReadHeaderTimeout: 10 * time.Second,