diff --git a/relay/cmd/main.go b/relay/cmd/main.go index 80e71486a..ba3ff47f7 100644 --- a/relay/cmd/main.go +++ b/relay/cmd/main.go @@ -2,20 +2,26 @@ package main import ( "os" - - "github.com/netbirdio/netbird/util" + "os/signal" + "syscall" log "github.com/sirupsen/logrus" "github.com/netbirdio/netbird/relay/server" + "github.com/netbirdio/netbird/util" ) func init() { util.InitLog("trace", "console") } -func main() { +func waitForExitSignal() { + osSigs := make(chan os.Signal, 1) + signal.Notify(osSigs, syscall.SIGINT, syscall.SIGTERM) + _ = <-osSigs +} +func main() { address := "10.145.236.1:1235" srv := server.NewServer() err := srv.Listen(address) @@ -24,5 +30,11 @@ func main() { os.Exit(1) } - select {} + waitForExitSignal() + + err = srv.Close() + if err != nil { + log.Errorf("failed to close server: %s", err) + os.Exit(1) + } }