main.go 1023 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package main
  2. import (
  3. "fmt"
  4. _ "github.com/gogf/gf/contrib/drivers/mysql/v2"
  5. "github.com/gogf/gf/v2/os/gctx"
  6. _ "nodeMonitor/internal/logic"
  7. _ "nodeMonitor/internal/packed"
  8. "nodeMonitor/internal/task/cmd"
  9. "os"
  10. "os/signal"
  11. "syscall"
  12. "time"
  13. )
  14. func main() {
  15. cmd.TaskMain.Run(gctx.New())
  16. Exit()
  17. }
  18. func Exit() {
  19. c := make(chan os.Signal)
  20. //监听指定信号 ctrl+c kill
  21. signal.Notify(c, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT, syscall.SIGUSR1, syscall.SIGUSR2)
  22. go func() {
  23. for s := range c {
  24. switch s {
  25. case syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT:
  26. fmt.Println("退出", s)
  27. ExitFunc()
  28. case syscall.SIGUSR1:
  29. fmt.Println("usr1", s)
  30. case syscall.SIGUSR2:
  31. fmt.Println("usr2", s)
  32. default:
  33. fmt.Println("other", s)
  34. }
  35. }
  36. }()
  37. fmt.Println("进程启动...")
  38. for {
  39. time.Sleep(time.Second)
  40. }
  41. }
  42. func ExitFunc() {
  43. fmt.Println("开始退出...")
  44. fmt.Println("执行清理...")
  45. fmt.Println("结束退出...")
  46. os.Exit(0)
  47. }