问答 / 0 / 4 / 创建于 1年前 / 更新于 1年前
ignore 就是忽略信号,如果收到信号,就什么都不做;reset 就是将对信号对处理重置为默认设置,之前对信号所设定的处理器(handler)就不会被调用,而是执行信号的默认行为。
@长日将尽 明白了,谢谢。不过好像在windows上没有区别,
func main() { c := make(chan os.Signal, 1) signal.Notify(c, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT) signal.Ignore(syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT) s := <-c fmt.Println("Got signal:", s) time.Sleep(5 * time.Second) }
不管是Ignore还是Reset,按Ctrl+C进程都会终止。在ubuntu上Ignore和Reset上就有区别。
我要举报该,理由是:
ignore 就是忽略信号,如果收到信号,就什么都不做;reset 就是将对信号对处理重置为默认设置,之前对信号所设定的处理器(handler)就不会被调用,而是执行信号的默认行为。