您的位置:首页 > 编程语言 > Go语言

Go signals 信号

2015-06-01 21:43 447 查看
Go中通过os/signals包,可以接受系统信号。

package main

import "fmt"
import "os"
import "os/signal"
import "syscall"

func main() {

sigs := make(chan os.Signal, 1)
signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)

fmt.Println("awaiting signal")
<-sigs
fmt.Println("exiting")
}


输出结果:

awaiting signal

^Cexiting

运行后输awaiting signal,然后卡住。当在键盘上按control+c以后go收到SIGINT信息,向sigs channel中添加信号,<-sigs处停止阻塞,程序执行结束。

此特性一般用来正常的退出程序,收到信息号,程序执行一系列的清理工作,然后退出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: