是否可以以“延迟”方式捕获 Ctrl+C 信号并运行清理功能?
技术问答
180 人阅读
|
0 人回复
|
2023-09-12
|
我想捕捉从控制台发送的Ctrl C( SIGINT) 信号并打印部分运行总数。
: J- l; ^) T) {7 y1 x- g" x+ P: M这在 Golang 中有可能吗?' A5 t5 y! G0 x6 B
注:当我第一次发布这个问题时,我是对的Ctrl CbeSIGTERM而不是SIGINT.
5 @4 i# E* {& U1 E% S ! |4 Y0 d& X6 r, C7 N" P
解决方案:
9 l- c' ]! i @( p) C. l% C' D 您可以使用os/signal包处理输入信号。Ctrl C是SIGINT,所以你可以用它来捕获它os.Interrupt.
D% j( B% b' g6 Z2 s/ v1 b3 J4 Vc := make(chan os.Signal,1)signal.Notify(c,os.Interrupt)go func(){ for sig := range c sig is a ^C,handle it }}()" n! @- }; {# U3 F9 ~$ j9 i9 B
程序终止和打印信息的方式完全取决于你。 |
|
|
|
|
|