少年意气强不羁,虎胁插翼白日飞。这篇文章主要讲述GO学习笔记-监听OS信号相关的知识,希望能为你提供帮助。
1.示例代码
package main
import (
"fmt"
"os"
"os/signal"
"syscall"
)
func main()
// syscall.SIGINT 中断信号
//管道
fmt.Println("pid:",os.Getpid())
interrupt := make(chan os.Signal,1)
reload := make(chan os.Signal,1)
signal.Notify(interrupt,syscall.SIGINT)
signal.Notify(reload,syscall.SIGHUP)
//监听系统信号; go doc syscall.SIGKILL 查看系统信号
//signal.Notify(signalChannel,syscall.SIGINT,syscall.SIGHUP)
//处理信号
INTERRUPT:
for
select
case < -interrupt:
break INTERRUPT
case < -reload:
fmt.Println("reload")
2.编译操作
bogon$ set GOOS=linux#交叉编译
bogon$ go mod init daySignal
go: creating new go.mod: module daySignal
go: to add module requirements and sums:
go mod tidy
bogon$ go mod tidy
bogon$ go build
3.验证测试;
bogon$ ./daySignal
pid: 4663
bogon$ ps -ef |grep 4663 |grep -v grep
5014663388503:16PM ttys0000:00.01 ./daySignal
bogon$ kill -1 4663
bogon$ ./daySignal
pid: 4663
reload
【GO学习笔记-监听OS信号】
推荐阅读
- #过年不停更#HarmonyOS-ETS之紧急拨号
- 创建私有CA并进行证书申请
- 数据库的导入和授权用户
- centos7环境,winscp传文件没权限的解决方法
- 总结ssh常用参数用法
- Linux配置桥接网卡就那两行
- Netgate发布pfSense2.6.0和Plus 22.01
- 总结sshd服务常用参数
- 华为万兆光猫P812E更换记录