我正在尝试在 go 中构建一个聊天室应用程序,我想在客户端使用 ctrl+c 或按下终端的关闭按钮时调用注销功能。
我尝试了此处和此处给出的方法,但它们没有捕获任何信号(在 Windows 10 和 Fedora 23 中尝试过)。这是我的代码片段,
sigc := make(chan os.Signal, 1)
signal.Notify(sigc,
syscall.SIGHUP,
syscall.SIGINT,
syscall.SIGTERM,
syscall.SIGQUIT)
go func() {
_ = <-sigc
fmt.Println("ctrl+c pressed")
client.Logout()
}()
我还有一些其他函数使用 goroutine 同时运行,这是这个函数没有捕获任何信号的原因吗?
任何帮助,将不胜感激。
白板的微信
相关分类