Apply .gitignore rules
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
package signalMgr
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
|
||||
"Framework/exitMgr"
|
||||
"Framework/goroutineMgr"
|
||||
"Framework/reloadMgr"
|
||||
"goutil/debugUtil"
|
||||
"goutil/logUtil"
|
||||
)
|
||||
|
||||
// Start ...启动信号管理器
|
||||
func Start() {
|
||||
go func() {
|
||||
goroutineName := "signalMgr.Start"
|
||||
goroutineMgr.Monitor(goroutineName)
|
||||
defer goroutineMgr.ReleaseMonitor(goroutineName)
|
||||
|
||||
sigs := make(chan os.Signal)
|
||||
signal.Notify(sigs, syscall.SIGTERM, syscall.SIGINT, syscall.SIGHUP)
|
||||
|
||||
for {
|
||||
// 准备接收信息
|
||||
sig := <-sigs
|
||||
|
||||
// 输出信号
|
||||
debugUtil.Println("sig:", sig)
|
||||
|
||||
if sig == syscall.SIGHUP {
|
||||
logUtil.InfoLog("收到重启的信号,准备重新加载配置")
|
||||
|
||||
// 重新加载
|
||||
errList := reloadMgr.Reload()
|
||||
for _, err := range errList {
|
||||
logUtil.ErrorLog(fmt.Sprintf("重启失败,错误信息为:%s", err))
|
||||
}
|
||||
|
||||
logUtil.InfoLog("收到重启的信号,重新加载配置完成")
|
||||
} else {
|
||||
logUtil.InfoLog("收到退出程序的信号,开始退出……")
|
||||
|
||||
// 调用退出的方法
|
||||
exitMgr.Exit()
|
||||
|
||||
logUtil.InfoLog("收到退出程序的信号,退出完成……")
|
||||
|
||||
// 一旦收到信号,则表明管理员希望退出程序,则先保存信息,然后退出
|
||||
os.Exit(0)
|
||||
}
|
||||
}
|
||||
}()
|
||||
}
|
||||
Reference in New Issue
Block a user