Go:信号操作

Go:信号操作

作用

  • 可以用来阻止Ctrl+c关闭程序
  • Web应用可以在收到Ctrl+c阻止新的请求进入,等待所有进入请求处理完成退出程序
package main

import (
	"fmt"
	"os"
	"os/signal"
	"syscall"
)

func main() {
	// 监听处理信号
	go SignalHandle()

	// 防止main执行完毕退出
	select {
	}
}

func SignalHandle() {
	for {
		ch := make(chan os.Signal)
		signal.Notify(ch, syscall.SIGINT)
		sig := <-ch
		fmt.Printf("收到信号:%d %s\n", sig, sig.String())
		switch sig {
		case syscall.SIGINT:
			os.Exit(1)
		}
	}
}

你可能感兴趣的:(Go,go信号,go,signal)