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

分类: 计算机技术
推荐阅读:
Python实现双向链表 在本文中,我们将看到另一种类型的链表,可以向前和向后移动;这样的链接列表称为双重链接列表(双向链表)。
reCAPTCHA verification failed, please try again. 解决方法 简单来说,reCAPTCHA是用于识别你是人类还是机器的一个强大系统,有点类似于验证码;当你碰到 reCAPTCHA verification failed, please try again. 的提示时,说明验证失败了;
使用MATLAB画一个爱心 以下是在 MATLAB 中绘制一个简单的爱心的示例代码:
Python format()函数 Python 内置的 format() 函数是一种字符串格式化输出的方法,可以将变量插入到字符串中,并控制输出的格式。
使用requests请求后的响应内容 使用Requests进行get请求或post请求后,requests会返回一个Response对象;
Python使用langid库来识别字符串语言 python使用 langid 库来实现识别字符串是什么语言;langid 是第三方库,需要我们自己安装