golang 处理信号,对程序优雅关闭

利用信号拦截,优雅退出

func main(){
    go func() {
       	ch := make(chan os.Signal)
		signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM, syscall.SIGKILL, syscall.SIGQUIT)
		log.Println(<-ch)
		os.Exit(0)
		// do things when catch a close signal
    }()

    for {
        time.Sleep(1 * time.Second)
        fmt.Println(1)
    }
}

你可能感兴趣的:(go)