@
Nasser 官网有方案,写了用
```go
routes.RegisterRoutes(engine)
srv := &http.Server{
Addr: ":" + port,
Handler: engine,
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
MaxHeaderBytes: 1 << 20,
}
logger.Info("Thousand-hand:listen " + port)
fmt.Printf("use http://localhost:%s\n", port)
go func() {
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
log.Fatalf("listen: %s\n", err)
}
}()
quit := make(chan os.Signal)
signal.Notify(quit, os.Interrupt)
_ = <-quit
```
其实就是用一下 `quit := make(chan os.Signal)` 这个监听信号量 `endless ` 这个有点老了,已经好多年都不更新了,官网也写了
`
https://gin-gonic.com/zh-cn/docs/examples/graceful-restart-or-stop/`,而且如果你用的 1.8 以上,注意 1.8 不是 1.18 只要你用的版本不是很老很老的版本,你用信号量处理就好。这个是防止请求过程中出现重启的情况。