server.go 745 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // +build go1.8
  2. package main
  3. import (
  4. "log"
  5. "net/http"
  6. "os"
  7. "os/signal"
  8. "github.com/gin-gonic/gin"
  9. )
  10. func main() {
  11. router := gin.Default()
  12. router.GET("/", func(c *gin.Context) {
  13. c.String(http.StatusOK, "Welcome Gin Server")
  14. })
  15. server := &http.Server{
  16. Addr: ":8080",
  17. Handler: router,
  18. }
  19. quit := make(chan os.Signal)
  20. signal.Notify(quit, os.Interrupt)
  21. go func() {
  22. <-quit
  23. log.Println("receive interrupt signal")
  24. if err := server.Close(); err != nil {
  25. log.Fatal("Server Close:", err)
  26. }
  27. }()
  28. if err := server.ListenAndServe(); err != nil {
  29. if err == http.ErrServerClosed {
  30. log.Println("Server closed under request")
  31. } else {
  32. log.Fatal("Server closed unexpect")
  33. }
  34. }
  35. log.Println("Server exist")
  36. }