回答

收藏

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

本版积分规则