Go signals 信號

Go中經過os/signals包,能夠接受系統信號。spa

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")
}

 

輸出結果:code

awaiting signalblog

^Cexitingit

 

運行後輸awaiting signal,而後卡住。當在鍵盤上按control+c之後go收到SIGINT信息,向sigs channel中添加信號,<-sigs處中止阻塞,程序執行結束。class

此特性通常用來正常的退出程序,收到信息號,程序執行一系列的清理工做,而後退出。import

相關文章
相關標籤/搜索