一尘不染

是否可以以“延迟”方式捕获Ctrl + C信号并运行清除功能?

go

我想捕获从控制台发送的Ctrl+CSIGINT)信号并打印出部分运行总计。

Golang有可能吗?

注意:当我第一次发布问题时,我对Ctrl+CSIGTERM代替感到困惑SIGINT


阅读 279

收藏
2020-07-02

共1个答案

一尘不染

您可以使用os / signal包来处理输入信号。Ctrl+
CSIGINT,因此您可以使用它来捕获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
    }
}()

导致程序终止和打印信息的方式完全取决于您。

2020-07-02