golang中os/signal包的使用
golang中os/signal包的使用
os/signal包实现对信号的处理
golang中对信号的处理主要使用os/signal包中的两个方法:一个是notify方法用来监听收到的信号;一个是 stop方法用来取消监听。
func Notify(c chan<- os.Signal, sig ...os.Signal)
func Notify(c chan<- os.Signal, sig ...os.Signal)
第一个参数表示接收信号的channel, 第二个及后面的参数表示设置要监听的信号,如果不设置表示监听所有的信号。
func main() {c := make(chan os.Signal, 0)signal.Notify(c)
//c := make(chan os.Signal, 1)
//signal.Notify(c, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT, syscall.SIGSTOP)// Block until a signal is received.s := <-cfmt.Println("Got signal:", s) //Got signal: terminated}
结果分析:运行该程序,然后在终端中通过kill命令杀死对应的进程,便会得到结果
func Stop(c chan<- os.Signal)
func main() {c := make(chan os.Signal, 0)signal.Notify(c)signal.Stop(c) //不允许继续往c中存入内容s := <-c //c无内容,此处阻塞,所以不会执行下面的语句,也就没有输出fmt.Println("Got signal:", s)
}
由于signal存入channel中,所以可以利用channel特性,通过select针对不同的signal使得系统或者进程执行不同的操作.
golang中os/signal包的使用相关推荐
- 31-【go】系统信号介绍、Go语言中使用os/signal包实现对信号的处理
一.系统信号介绍 系统信号介绍_Agoni_xiao的博客-CSDN博客 二.Go语言中使用os/signal包实现对信号的处理 Go语言中os/signal包的学习与使用 - 人艰不拆_zmc - ...
- golang中container/list包中的坑
转载地址:golang中container/list包中的坑 - Go语言中文网 - Golang中文社区 golang中list包用法可以参看golang中container/list包用法_che ...
- php_os用法,golang中os包用法
os包中实现了平台无关的接口,设计向Unix风格,但是错误处理是go风格,当os包使用时,如果失败之后返回错误类型而不是错误数量. os包中函数设计方式和Unix类似,下面来看一下. func Chd ...
- Golang中log日志包的使用
文章目录 1.前言 2.log包介绍 3.log包的使用 3.1 日志输出方法 3.2 自定义创建日志对象 3.3 封装自定义日志包 3.4 log包进一步解析 1.前言 作为后端开发人员,日志文件记 ...
- 深入理解Golang中的Context包
context.Context是Go语言中独特的设计,在其他编程语言中我们很少见到类似的概念.context.Context深度支持Golang的高并发. 1. Goroutine和Channel 在 ...
- Golang中import 导入包的几种方式:点,别名与下划线
在写Go代码的时候经常用到import这个命令用来导入包文件,看到的方式参考如下: import (// 多个"google.golang.org/grpc""imcs/ ...
- Golang中path/filepath包
path/filepath包下的相关函数 1. ToSlash函数 func ToSlash(path string) string 功能:将path中平台相关的路径分隔符转换成'/' 例如:wind ...
- golang 中的sort 包
sort接口 一个很好的例子是来自标准库的 sort 包,要对一组数字或字符串排序,只需要实现三个方法:反映元素个数的 Len() 方法.比较第 i 和 j 个元素的 Less(i, j) 方法以及交 ...
- Golang中os.Reader和ReaderAt的区别,及ReaderAt快速读取日志文件的实现
go中区别Read和ReadAt 一.os.Read() 二.os.ReadAt() 三.os.Read()和os.ReadAt()区别及注意事项 一.os.Read() // Read reads ...
最新文章
- 【LOJ】#3098. 「SNOI2019」纸牌
- win10装机 哪个版本最稳定
- windows系统服务器添加ssl证书
- vue 父组件获取接口值传到子组件_vue父组件异步获取数据传给子组件的方法
- 【Python3_进阶系列_004】Python3-工厂设计模式
- [Linux] Ubuntu13.04 搭建OK6410-A开发板的开发环境
- 调用sklearn包中的PLA算法[转载]
- c语言编写面向对象的类
- t470键盘拆解_thinkpad t470怎么样?thinkpad t470拆机图解全面评测
- crmeb多商户1.7.3
- 图片太大如何压缩?学会这个方法轻松压缩
- 激光雷达 vs. 雷达【选型比较】
- android怎么点击换图片,ImageButton单击切换按钮图片
- OneNote应用技巧
- 数据库勒索病毒故障处理
- 指针 Swap交换函数
- 小强期中考试(考察1-9章)
- Android实战(二)—— 房贷计算器
- Oracle中表的键和检查,Oracle 过程中检查数据表存在与否
- wolframalpha最新版_WolframAlpha安卓版中文最新版
热门文章
- python对淘宝运营有帮助吗_淘宝运营,有前途吗?
- p值 统计学意义_统计学意义不重要为什么p值不应过高
- 怎么给word插入页码,详细图文教学,轻松学会
- 取消UOS双系统开机启动
- ImportError:undefined symbol: _ZN2at5sliceERKNS_6TensorElN3c108optionalIlEES5_l
- 为何沃比帕克模式无法复制?
- 《28岁未成年》感悟——永远不要失去自我
- 爬取笔趣阁小说网站上的所有小说(二)
- 【论文】模型剪枝(Network Pruning)论文详细翻译
- 华为的海外员工生活写实