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

分类: 计算机技术
推荐阅读:
使用PySide6创建窗口以及各类窗口的区别 在本文中,你将了解Qt的窗口,以及QMainWindow、QWidget、QDialog之间的区别和在PySide6中的使用方法;
Python all()函数 all()是Python内置函数之一,它接收一个可迭代对象,如果可迭代对象中的所有元素都为真值(非零、非空、非None等),则返回True,否则返回False。
1400多万个弱口令密码字典下载 该密码字典包含1400多万个密码,包含弱密码、常用密码、短密码等组合,适合暴力猜解使用;该文件来源于Kali系统下的密码字典文件;
Qt在Windows11下的视觉效果 作者更新到Windows11了,来看看Qt在Windows11下的视觉效果;变化比较明显的是窗口,PushButton控件和输入框控件;
C语言isxdigit()函数:判断字符是否为十六进制数字字符 isxdigit()是C语言标准库中的一个函数,用于判断一个字符是否为十六进制数字字符;十六进制数字包括0~9之间的数字,以及A~F的字母(不区分大小写);
Python将二维数组进行顺时针旋转90度、180度、270度 本文将使用Python实现二维数组顺时针旋转,包括旋转90度、180度、270度;