是否可以以“延迟”方式捕获 Ctrl+C 信号并运行清理功能?
技术问答
258 人阅读
|
0 人回复
|
2023-09-12
|
我想捕捉从控制台发送的Ctrl C( SIGINT) 信号并打印部分运行总数。
% v+ q: [: S' l. a! S这在 Golang 中有可能吗?
7 F) y6 [, c2 d3 `% F+ _) A3 Z' q" @注:当我第一次发布这个问题时,我是对的Ctrl CbeSIGTERM而不是SIGINT.
& p: g y, L: V1 _+ j7 ~3 z 2 U: z* j/ b9 f: I. T& t
解决方案:
% b' i8 O b I( v' J6 o1 V* a/ [3 p+ r, ` 您可以使用os/signal包处理输入信号。Ctrl C是SIGINT,所以你可以用它来捕获它os.Interrupt.
; |! M0 n9 f' p- f/ }2 G ic := make(chan os.Signal,1)signal.Notify(c,os.Interrupt)go func(){ for sig := range c sig is a ^C,handle it }}()7 e" t2 j0 ~. R @5 [) P
程序终止和打印信息的方式完全取决于你。 |
|
|
|
|
|