实例

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的应用相关推荐

  1. go语言os.exit(1)_Go语言-信号os.Interrupt和信号syscall.SIGTERM的应用

    实例 package main import( "fmt" "os" "os/signal" "sync" " ...

  2. 《安富莱嵌入式周报》第313期:搬运机器人,微软出的C语言手册,开源生物信号采集板,开源SMD回流焊,开源SDR无线电,汽车级机器人评估板

    周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Pow ...

  3. linux python 信号,Python模块之信号(signal)

    在了解了Linux的信号基础之 后,Python标准库中的signal包就很容易学习和理解.signal包负责在Python程序内部处理信号,典型的操作包括预设信号处理函数,暂 停并等待信号,以及定时 ...

  4. 【B站视频笔记】linux 进程间通信(ipc)信号(软中断信号)signal库函数、可靠信号和不可靠信号、信号集sigprocmask(信号掩码、信号递达Delivery、信号未决Pending)

    [视频教程]Linux信号详解(可靠信号.不可靠信号.阻塞信号.信号处理函数) [博文]Linux信号 文章目录 背景 课程笔记 一.如何让程序在后台运行 1.加"&"符号 ...

  5. Linux系统编程---6(信号的机制,信号4要素,Linu常规信号表,定时器)

    信号的概念 信号在我们的生活中随处可见, 如:古代战争中摔杯为号:现代战争中的信号弹:体育比赛中使用的信号枪- 他们都有共性: 简单 不能携带大量信息,只能带一个标志. 满足某个特设条件才发送. Un ...

  6. java linux 信号_Java 中关于信号的处理在Linux下的实现

    Java里信号处理的函数 在linux里可以设置进程级别的信号的处理函数,在内核中信号值及进程针对该信号的处理函数建立了映射关系,主要有2个函数来设置信号处理函数:signal(),sigaction ...

  7. matlab 信号生成,Matlab产生信号的方法

    实验一 常用信号的Matlab 表示及运算 一.实验目的 1.掌握Matlab 中表示信号的方法. 2.掌握Matlab 中信号运算的实现方法. 3.掌握在Matlab 中画信号波形的方法. 二.实验 ...

  8. linux. signal信号,Linux下signal信号汇总

    SIGHUP /* Hangup (POSIX). */ 终止进程 终端线路挂断 SIGINT /* Interrupt (ANSI). */ 终止进程 中断进程 Ctrl+C SIGQUIT /* ...

  9. 十四、Linux系统编程-信号(一)中断、信号、中断和信号

    一.中断 (1).中断概念       中断是用以提高计算机工作效率.增强计算机功能的一项重要技术.最初引入硬件中断,只是出于性能上的考量.如果计算机系统没有中断,则处理器与外部设备通信时,它必须在向 ...

最新文章

  1. 生活在AI的世界是种什么体验?
  2. windows服务安装
  3. Git 操作简单总结:廖雪峰教程
  4. mongodb php 报错,PHP5 mongodb 切换db报错 Authentication failed on database admin-汗血宝马
  5. Linux基础命令(常用的)
  6. Cache占用过多内存导致Linux系统内存不足问题排查
  7. AutoHotkey调用VBA实现批量精确筛选数据透视表某字段内容。
  8. linux如何导入安装包,linux下安装pip以及导入第三方包
  9. 想学数学建模???先来看会这几个MATLAB题吧!!!(一)
  10. 鸿蒙轻内核M核的故障管家:Fault异常处理
  11. c++ max函数_「C/C++」函数:定义、调用、参数传递
  12. mysql系列:登陆和退出
  13. Linux添加相对库路径,Linux C编程(8) 使用相对路径加载动态库-rpath和$ORIGIN
  14. 为什么每次进入命令都要重新source /etc/profile 才能生效?
  15. pandownload提示“初始化脚本失败”解决方法
  16. Jenkins教程(自动化部署)
  17. android实训总结ppt模板,ppt制作实训心得.docx
  18. hexo d上传报错鉴权失败
  19. android蓝牙传输文件到mysql_使用Android将图像发送到MySQL数据库
  20. 域名解析ip地址的过程

热门文章

  1. golang文件夹位置判断
  2. Objective C的那点小语法
  3. Json序列化空时间字段出异常
  4. centos5.5 挂载NTFS优盘
  5. (转载)查看Oracle字符集及怎样修改字符集
  6. Silkroad 与 Tesseract 通信协议 QuestionModel
  7. 2015/04/01     RHCS
  8. 在Word中如何实现后退?
  9. xpath的一些测试
  10. 在程序里面(服务器端)调用Winrar压缩文件的方法?另寻求一条语句转换的方法。vb.net到C#。...