notify方法原型:
func
Notify(c
chan
<- os.Signal, sig ...os.Signal)
第一个参数表示接收信号的管道
第二个及后面的参数表示设置要监听的信号,如果不设置表示监听所有的信号。
1. 捕捉信号的简单示例
1.1 捕捉所有信号
package main
import (
"fmt"
"os"
"os/signal"
//"syscall"
)
func main() {
c := make(chan os.Signal)
signal.Notify(c)
s := <-c
fmt.Println("get signal:", s)
}
1.2 捕捉Ctrl+C信号
package main
import (
"fmt"
"os"
"os/signal"
)
func main() {
signalChan := make(chan os.Signal, 1)
cleanupDone := make(chan bool)
signal.Notify(signalChan, os.Interrupt)
go func() {
for _ = range signalCha