Go简单的结束程序
前请概要
当你写的Go程序在退出时做一些操作就需要捕捉信号后进行业务处理再关闭程序
但是当程序主线不止一条时,逻辑会些许复杂。一般捕捉信号的函数只有一个,但是退出的地方却多了起来,退出方案必须具有拓展性与简单性才能让自己不再纠结于此。
一般资料都时在讲捕捉信号与退出,而例子往往只考虑单个主线退出,当你写个命令行启动,根据子命令执行不同主线时在方便的扩展性上迷了方向。
举个栗子
单条主线
func main() {
c := make(chan os.Signal, 1)
signal.Notify(c, os.Interrupt, os.Kill)
// TODO: do something
s := <-c
fmt.Println("Got signal:", s)
}
全在main里干了