GO学习笔记-监听OS信号
Posted breaklinux
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
501 4663 3885 0 3:16PM ttys000 0:00.01 ./daySignal
bogon$ kill -1 4663
bogon$ ./daySignal
pid: 4663
reload
以上是关于GO学习笔记-监听OS信号的主要内容,如果未能解决你的问题,请参考以下文章