Golang捕获Ctrl+C的系统信号并作出响应
通常,当操作系统要停止你的进程时,会向你的进程发送信号,如果你需要在进程结束前处理一些事务,那么你需要捕获这些信号;
在Go语言中,你可以使用标准库中的 os/signal
包来捕获系统信号;
下面这个示例将向你展示如何在Golang中,将系统中的所有信号分配给一个通道,然后如何对这些信号做出反应。
示例代码:
package main
import (
"fmt"
"os"
"os/signal"
)
func main(){
sigChan := make(chan os.Signal)
signal.Notify(sigChan)
select{
case sig:=<-sigChan:
fmt.Println("接受到来自系统的信号:",sig)
}
}
当你运行上述程序时,它将创建一个通道,然后阻塞直到该通道接受到来自系统的信号并打印出该信号;运行程序后按下Ctrl + C ,他将接收一个SIGINT 信号。
如需转载,请注明出处;本文地址:https://www.perfcode.com/p/assigning-signals-to-a-channel.html