在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
import ( "flag" "fmt" "github.com/Sirupsen/logrus" "log" "os" "os/signal" "syscall" )
var ( pConfig ProxyConfig pLog *logrus.Logger configFile = flag.String("c", "etc/conf.yaml", "配置文件,默认etc/conf.yaml") //默认配置问价地址,如果不配置的话 )
func onExitSignal() { sigChan := make(chan os.Signal) //信号量通道 signal.Notify(sigChan, syscall.SIGUSR1, syscall.SIGTERM, syscall.SIGINT) //信号量捕获事件 L: //标签 for { sig := <-sigChan switch sig { case syscall.SIGUSR1: log.Fatal("Reopen log file") case syscall.SIGTERM, syscall.SIGINT: log.Fatal("Catch SIGTERM singal, exit.") break L } } }
func main() { flag.Parse() //参数解析 fmt.Println("Start Proxy...") if parseConfigFile(*configFile) != nil { //yaml文件解析 return } // init logger server initLogger() //日志初始化 // init Backend server initBackendSvrs(pConfig.Backend) //初始化后端服务 go onExitSignal() // 开启协成 中断信号捕获 // init status service initStats() //初始化 系统状态监控 // init proxy service initProxy() //初始化代理服务 }
|
请发表评论