回答

收藏

是否可以以“延迟”方式捕获 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  i
    c := 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
程序终止和打印信息的方式完全取决于你。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则