| 272 | } |
| 273 | |
| 274 | func Shutdown(timeout time.Duration) { |
| 275 | utils.Log.Println("Shutdown server...") |
| 276 | fs.ArchiveContentUploadTaskManager.RemoveAll() |
| 277 | ctx, cancel := context.WithTimeout(context.Background(), timeout) |
| 278 | defer cancel() |
| 279 | var wg sync.WaitGroup |
| 280 | if httpSrv != nil && conf.Conf.Scheme.HttpPort != -1 { |
| 281 | wg.Add(1) |
| 282 | go func() { |
| 283 | defer wg.Done() |
| 284 | if err := httpSrv.Shutdown(ctx); err != nil { |
| 285 | utils.Log.Error("HTTP server shutdown err: ", err) |
| 286 | } |
| 287 | httpSrv = nil |
| 288 | }() |
| 289 | } |
| 290 | if httpsSrv != nil && conf.Conf.Scheme.HttpsPort != -1 { |
| 291 | wg.Add(1) |
| 292 | go func() { |
| 293 | defer wg.Done() |
| 294 | if err := httpsSrv.Shutdown(ctx); err != nil { |
| 295 | utils.Log.Error("HTTPS server shutdown err: ", err) |
| 296 | } |
| 297 | httpsSrv = nil |
| 298 | }() |
| 299 | if quicSrv != nil && conf.Conf.Scheme.EnableH3 { |
| 300 | wg.Add(1) |
| 301 | go func() { |
| 302 | defer wg.Done() |
| 303 | if err := quicSrv.Shutdown(ctx); err != nil { |
| 304 | utils.Log.Error("HTTP3 (quic) server shutdown err: ", err) |
| 305 | } |
| 306 | quicSrv = nil |
| 307 | }() |
| 308 | } |
| 309 | } |
| 310 | if unixSrv != nil && conf.Conf.Scheme.UnixFile != "" { |
| 311 | wg.Add(1) |
| 312 | go func() { |
| 313 | defer wg.Done() |
| 314 | if err := unixSrv.Shutdown(ctx); err != nil { |
| 315 | utils.Log.Error("Unix server shutdown err: ", err) |
| 316 | } |
| 317 | unixSrv = nil |
| 318 | }() |
| 319 | } |
| 320 | if s3Srv != nil && conf.Conf.S3.Port != -1 && conf.Conf.S3.Enable { |
| 321 | wg.Add(1) |
| 322 | go func() { |
| 323 | defer wg.Done() |
| 324 | if err := s3Srv.Shutdown(ctx); err != nil { |
| 325 | utils.Log.Error("S3 server shutdown err: ", err) |
| 326 | } |
| 327 | s3Srv = nil |
| 328 | }() |
| 329 | } |
| 330 | if conf.Conf.FTP.Listen != "" && conf.Conf.FTP.Enable && ftpServer != nil { |
| 331 | wg.Add(1) |