GoLang中signal.Notify函数用法
2024-09-18 18:28:14
官方描述:
Notify函数让signal包将输入信号转发到c。如果没有列出要传递的信号,会将所有输入信号传递到c;否则只传递列出的输入信号。
signal包不会为了向c发送信息而阻塞(就是说如果发送时c阻塞了,signal包会直接放弃):调用者应该保证c有足够的缓存空间可以跟上期望的信号频率。对使用单一信号用于通知的通道,缓存为1就足够了
ch := make(chan os.Signal, 1)
signal.Notify(ch, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGSTOP, syscall.SIGUSR1)
for {
s := <-ch
switch s {
case syscall.SIGQUIT:
log.Infof("SIGSTOP")
return
case syscall.SIGSTOP:
log.Infof("SIGSTOP")
return
case syscall.SIGHUP:
log.Infof("SIGHUP")
return
case syscall.SIGKILL:
log.Infof("SIGKILL")
return
case syscall.SIGUSR1:
log.Infof("SIGUSR1")
return
default:
log.Infof("default")
return
}
}
以上代码告诉 signal ,将对应的信号通知 ch,然后在 for 循环中针对不同信号做不同的处理, for 循环为死循环
最新文章
- img的onerror事件(瑕疵+解决办法)【转】
- Install R &; RStudio for Ubuntu
- sp_executesql的执行计划会被重用(转载)
- C语言中字符数组和字符串指针分析
- 更新证书错误Code Sign error: Provisioning profile ‘XXXX&#39;can&#39;t be found
- IOS项目集成ShareSDK实现第三方登录、分享、关注等功能(备用)
- linux下挂载iso镜像的方法
- Arc engine - Geodatabase.
- Codeforces Round #350 (Div. 2)解题报告
- 初识markdown以及markdown的常用语法
- Async/Await替代Promise的6个理由
- GitHub入门之路(1)
- 较复杂makefile跟lds脚本程序的编写
- eclipse中jetty插件安装
- trie上记忆化搜索,括号匹配——cf1152D好题!
- VSCode打开多个项目文件夹的解决方法
- 翻译:ZooKeeper OverView
- 用jQuery和Json实现Ajax异步请求
- C++解析十-数据封装
- Spring源码-循环依赖源码解读