Ai
1 Star 0 Fork 0

墨城/async_task_demon

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
cmd_signal.go 1.08 KB
一键复制 编辑 原始数据 按行查看 历史
墨城 提交于 2023-11-17 17:44 +08:00 . log and command ok
package cmd_signal
import (
"fmt"
"gitee.com/qdmc/async_task_demon/log"
"os"
"os/signal"
"runtime"
"syscall"
)
/*
syscall.SIGHUP hongup 挂断
syscall.SIGINT interrupt 前台终止 ctrl+C
syscall.SIGQUIT quit
syscall.SIGKILL signal: killed 由kill -9
syscall.SIGTERM 进程自己结束,kill
syscall.SIGUSR1, syscall.SIGUSR2 用户指令,win下没有
*/
// ListenProcess 创建进程退出的监听
func listenProcess(f func(s os.Signal)) {
ch := make(chan os.Signal)
if runtime.GOOS == "linux" {
//signal.Notify(ch, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT, syscall.SIGUSR1, syscall.SIGUSR2)
signal.Notify(ch, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT)
} else {
signal.Notify(ch, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT)
}
go func() {
for sig := range ch {
f(sig)
}
}()
}
func processExitHandle(s os.Signal) {
// todo 进程退出业务
fmt.Println("--------- ", s.String())
log.Info(fmt.Sprintf("进程退出:%s", s.String()))
}
func StartListen() {
listenProcess(processExitHandle)
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/qdmc/async_task_demon.git
git@gitee.com:qdmc/async_task_demon.git
qdmc
async_task_demon
async_task_demon
v1.0.1

搜索帮助