摘要
本文内容转自网络,个人学习记录使用,请勿传播
isme正是在下
本文内容转自网络,个人学习记录使用,请勿传播
信号(Signal)是Linux, 类Unix和其它POSIX兼容的操作系统中用来进程间通讯的一种方式。对于Linux系统来说,信号就是软中断,用来通知进程发生了异步事件。
当信号发送到某个进程中时,操作系统会中断该进程的正常流程,并进入相应的信号处理函数执行操作,完成后再回到中断的地方继续执行。
有时候我们想在Go程序中处理Signal信号,比如收到SIGTERM信号后优雅的关闭程序,以及 goroutine结束通知等。
Go 语言提供了对信号处理的包(os/signal
)。
Go 中对信号的处理主要使用os/signal
包中的两个方法:一个是notify方法用来监听收到的信号;一个是 stop方法用来取消监听。
Go信号通知机制可以通过往一个channel中发送os.Signal
实现。