--- /home/kboz/eve_haul/backend-go/cmd/eve_haul_go/main.go +++ /home/kboz/eve_haul/backend-go/cmd/eve_haul_go/main.go @@ -115,8 +115,19 @@ Handler: mux, } -log.Println("Listening on :8000") -if err := server.ListenAndServe(); err != nil { -log.Fatalf("Server failed: %v", err) -} +go func() { +log.Println("Listening on :8000") +if err := server.ListenAndServe(); err != nil && err != http.ErrServerClosed { +log.Fatalf("Server failed: %v", err) +} +}() + +quit := make(chan os.Signal, 1) +signal.Notify(quit, os.Interrupt, syscall.SIGTERM) +<-quit +log.Println("\nShutting down server...") + +ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) +defer cancel() +server.Shutdown(ctx) } func isSetupReady() (bool, bool) {