zipper_windows.go 741 B

12345678910111213141516171819202122232425262728293031
  1. //go:build windows
  2. // +build windows
  3. package yomo
  4. import (
  5. "os"
  6. "os/signal"
  7. "syscall"
  8. "github.com/yomorun/yomo/core"
  9. "github.com/yomorun/yomo/core/ylog"
  10. "github.com/yomorun/yomo/pkg/trace"
  11. )
  12. // initialize when zipper running as server. support inspection:
  13. // - `kill -SIGTERM <pid>` graceful shutdown
  14. func waitSignalForShutdownServer(server *core.Server) {
  15. c := make(chan os.Signal, 1)
  16. signal.Notify(c, syscall.SIGTERM, syscall.SIGINT)
  17. ylog.Info("Listening SIGTERM/SIGINT...")
  18. for p1 := range c {
  19. ylog.Debug("Received signal", "signal", p1)
  20. if p1 == syscall.SIGTERM || p1 == syscall.SIGINT {
  21. server.Close()
  22. trace.ShutdownTracerProvider()
  23. ylog.Debug("graceful shutting down ...", "sign", p1)
  24. os.Exit(0)
  25. }
  26. }
  27. }