登录
首页 >  Golang >  Go问答

如何在退出时调用函数

来源:stackoverflow

时间:2024-04-07 12:45:29 401浏览 收藏

哈喽!大家好,很高兴又见面了,我是golang学习网的一名作者,今天由我给大家带来一篇《如何在退出时调用函数》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!

问题内容

我正在使用 docker 作为容器运行我的 go 项目,我想在它退出或终止时调用一个函数,但该函数中的内容没有打印:

这是我当前在主函数中的代码:

sigChan := make(chan os.Signal)
    signal.Notify(sigChan, os.Interrupt)
    signal.Notify(sigChan, os.Kill)
    defer func() {
        <-sigChan
        fmt.Println("save to disk and clean")
    }()
    sig := <-sigChan
    log.Println("reliable termination", sig)

    s.Shutdown(tc)

正确答案


Docker 在停止命令时向容器发送 SIGTERMSIGKILL 。如果注册,您的代码应该会收到这些信息。

如果还是没有收到,请检查入口点是否为shell形式,因为shell形式不传递信号,将其更改为exec form

好了,本文到此结束,带大家了解了《如何在退出时调用函数》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>