blob: 0cb9ed28ead37c666b0e247d52f799f2d6a570cb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
--- /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) {
|