请教,web程序,如何在`ctrl-c`,或者服务器重启的时候,执行一些函数,比如保存之类的?

defer似乎做不到?

共 4 个回复


leedstyh

func main(){
    // ...
    log.Println("server start")
    go http.ListenAndServe(...)

    c:= make(chan os.Signal, 1)
    signal.Notify(c, os.Interrupt, syscall.SIGTERM, syscall.SIGKILL)
    s := <- c
    log.Println("server exit on", s)
}

请问这样写合适吧,网上没搜索到这样写的呢?

# 2

heimeil

这样应该可以的,可以自己先试试

# 3