V2.7 增加agent执行器
This commit is contained in:
41
agent/server/signal.go
Normal file
41
agent/server/signal.go
Normal file
@@ -0,0 +1,41 @@
|
||||
/************************************************************
|
||||
** @Description: server
|
||||
** @Author: george hao
|
||||
** @Date: 2018-11-29 11:24
|
||||
** @Last Modified by: george hao
|
||||
** @Last Modified time: 2018-11-29 11:24
|
||||
*************************************************************/
|
||||
package server
|
||||
|
||||
import (
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
//监听关闭状态
|
||||
func ListenSignal() {
|
||||
//创建监听退出chan
|
||||
c := make(chan os.Signal)
|
||||
//监听指定信号 ctrl+c kill
|
||||
signal.Notify(c, syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT, syscall.SIGUSR1, syscall.SIGUSR2)
|
||||
|
||||
go func() {
|
||||
for s := range c {
|
||||
switch s {
|
||||
case syscall.SIGHUP, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT, syscall.SIGUSR1, syscall.SIGUSR2:
|
||||
NLog("NOTICE", " Ready to quit close type ", s)
|
||||
//TODO 异常警报,汇报状态
|
||||
if err := Close(); err != nil {
|
||||
NLog("ERROR", err.Error())
|
||||
} else {
|
||||
NLog("NOTICE", " 执行器安全关闭...")
|
||||
}
|
||||
os.Exit(0)
|
||||
default:
|
||||
NLog("NOTICE", " close type ", s)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
}()
|
||||
}
|
||||
Reference in New Issue
Block a user