回答

收藏

是否可以以“延迟”方式捕获 Ctrl+C 信号并运行清理功能?

技术问答 技术问答 228 人阅读 | 0 人回复 | 2023-09-12

我想捕捉从控制台发送的Ctrl C( SIGINT) 信号并打印部分运行总数。' [+ _$ m1 K/ w6 c& ^- p
这在 Golang 中有可能吗?9 ]% h  e: u) L, s3 j
注:当我第一次发布这个问题时,我是对的Ctrl CbeSIGTERM而不是SIGINT.1 D' R( X" L5 n" }( ]
                                                                3 _$ q2 O% z" _2 f
    解决方案:                                                               
, ^! X: B4 [/ u) a* e( e+ x5 ^# d, d                                                                您可以使用os/signal包处理输入信号。Ctrl C是SIGINT,所以你可以用它来捕获它os.Interrupt.$ `3 h9 ^3 P3 l7 P6 ~
    c := make(chan os.Signal,1)signal.Notify(c,os.Interrupt)go func(){     for sig := range c        sig is a ^C,handle it    }}()
    8 B; J/ Q: d* `. Q2 c
程序终止和打印信息的方式完全取决于你。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则