我想捕获从控制台发送的Ctrl+C( SIGINT) 信号并打印出一些部分运行总数。
SIGINT
这在 Golang 中可能吗?
注意:当我第一次发布这个问题时,我对Ctrl+CbeSIGTERM而不是SIGINT.
SIGTERM
您可以使用os/signal包来处理传入的信号。Ctrl+C是SIGINT,因此您可以使用它来捕获os.Interrupt.
os.Interrupt
c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt) go func(){ for sig := range c { // sig is a ^C, handle it } }()
您使程序终止和打印信息的方式完全取决于您。