是否可以以“延迟”方式捕获 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 程序终止和打印信息的方式完全取决于你。 |
|
|
|
|
|