syscall.SIGHUP : 终端控制进程结束(终端连接断开)
    syscall.SIGINT : 用户发送INTR字符(Ctrl+C)触发
    syscall.SIGTERM : 结束程序(可以被捕获、阻塞或忽略) kill pid 出发

    1. func WaitExitSingnal {
    2. ch := make(chan os.Signal, 1)
    3. signal.Notify(ch, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM)
    4. for {
    5. s := <-ch
    6. switch s {
    7. case syscall.SIGHUP:
    8. log.Info("收到终端断开信号, 忽略", "system")
    9. case syscall.SIGINT, syscall.SIGTERM:
    10. log.Info("应用准备退出", "system")
    11. self.GracefulStop()
    12. return
    13. }
    14. }
    15. }