Go语言-信号os.Interrupt和信号syscall.SIGTERM的应用
实例
package mainimport("fmt""os""os/signal""sync""syscall""time"
)func worker(stop <-chan bool) {for {select {case <-stop:fmt.Println("exit")returndefault:fmt.Println("running...")time.Sleep(3)}}
}func main() {stop := make(chan bool)var wg sync.WaitGroupfor i := 0; i < 3; i++ {wg.Add(1)go func(stop <-chan bool) {defer wg.Done()worker(stop)}(stop)}waitForSignal()close(stop)fmt.Println("stopping all job")wg.Wait()
}func waitForSignal() {sigs := make(chan os.Signal)signal.Notify(sigs, os.Interrupt)signal.Notify(sigs, syscall.SIGTERM)fmt.Println(<-sigs)
}
运行结果
pkill信号syscall.SIGTERM
...running...running...running...running...terminatedrunning...running...stopping all jobexitexitexit
或者ctrl+c信号os.Interrupt
running...
interrupt
stopping all job
running...
exit
exit
exit
转载于:https://blog.51cto.com/12880687/2130282
Go语言-信号os.Interrupt和信号syscall.SIGTERM的应用相关推荐
- go语言os.exit(1)_Go语言-信号os.Interrupt和信号syscall.SIGTERM的应用
实例 package main import( "fmt" "os" "os/signal" "sync" " ...
- 《安富莱嵌入式周报》第313期:搬运机器人,微软出的C语言手册,开源生物信号采集板,开源SMD回流焊,开源SDR无线电,汽车级机器人评估板
周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Pow ...
- linux python 信号,Python模块之信号(signal)
在了解了Linux的信号基础之 后,Python标准库中的signal包就很容易学习和理解.signal包负责在Python程序内部处理信号,典型的操作包括预设信号处理函数,暂 停并等待信号,以及定时 ...
- 【B站视频笔记】linux 进程间通信(ipc)信号(软中断信号)signal库函数、可靠信号和不可靠信号、信号集sigprocmask(信号掩码、信号递达Delivery、信号未决Pending)
[视频教程]Linux信号详解(可靠信号.不可靠信号.阻塞信号.信号处理函数) [博文]Linux信号 文章目录 背景 课程笔记 一.如何让程序在后台运行 1.加"&"符号 ...
- Linux系统编程---6(信号的机制,信号4要素,Linu常规信号表,定时器)
信号的概念 信号在我们的生活中随处可见, 如:古代战争中摔杯为号:现代战争中的信号弹:体育比赛中使用的信号枪- 他们都有共性: 简单 不能携带大量信息,只能带一个标志. 满足某个特设条件才发送. Un ...
- java linux 信号_Java 中关于信号的处理在Linux下的实现
Java里信号处理的函数 在linux里可以设置进程级别的信号的处理函数,在内核中信号值及进程针对该信号的处理函数建立了映射关系,主要有2个函数来设置信号处理函数:signal(),sigaction ...
- matlab 信号生成,Matlab产生信号的方法
实验一 常用信号的Matlab 表示及运算 一.实验目的 1.掌握Matlab 中表示信号的方法. 2.掌握Matlab 中信号运算的实现方法. 3.掌握在Matlab 中画信号波形的方法. 二.实验 ...
- linux. signal信号,Linux下signal信号汇总
SIGHUP /* Hangup (POSIX). */ 终止进程 终端线路挂断 SIGINT /* Interrupt (ANSI). */ 终止进程 中断进程 Ctrl+C SIGQUIT /* ...
- 十四、Linux系统编程-信号(一)中断、信号、中断和信号
一.中断 (1).中断概念 中断是用以提高计算机工作效率.增强计算机功能的一项重要技术.最初引入硬件中断,只是出于性能上的考量.如果计算机系统没有中断,则处理器与外部设备通信时,它必须在向 ...
最新文章
- 生活在AI的世界是种什么体验?
- windows服务安装
- Git 操作简单总结:廖雪峰教程
- mongodb php 报错,PHP5 mongodb 切换db报错 Authentication failed on database admin-汗血宝马
- Linux基础命令(常用的)
- Cache占用过多内存导致Linux系统内存不足问题排查
- AutoHotkey调用VBA实现批量精确筛选数据透视表某字段内容。
- linux如何导入安装包,linux下安装pip以及导入第三方包
- 想学数学建模???先来看会这几个MATLAB题吧!!!(一)
- 鸿蒙轻内核M核的故障管家:Fault异常处理
- c++ max函数_「C/C++」函数:定义、调用、参数传递
- mysql系列:登陆和退出
- Linux添加相对库路径,Linux C编程(8) 使用相对路径加载动态库-rpath和$ORIGIN
- 为什么每次进入命令都要重新source /etc/profile 才能生效?
- pandownload提示“初始化脚本失败”解决方法
- Jenkins教程(自动化部署)
- android实训总结ppt模板,ppt制作实训心得.docx
- hexo d上传报错鉴权失败
- android蓝牙传输文件到mysql_使用Android将图像发送到MySQL数据库
- 域名解析ip地址的过程