码迷,mamicode.com
首页 > 其他好文 > 详细

main.go

时间:2017-08-31 11:02:28      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:UI   san   notify   系统服务   imp   系统   tar   文件   microsoft   

package main

import (
    "flag"
    "fmt"
    "log"
    "os"
    "os/signal"
    "syscall"

    "github.com/Sirupsen/logrus"
)
var (
    Config     ProxyConfig    //配置文件解析后的结构体
    Log        *logrus.Logger 
    configFile = flag.String("c", "./conf.yaml", "配置文件:conf.yaml")
)
 // 监听系统服务退出信号
func onExitSignal() {
    signalChan := make(chan os.Signal)   //创建信号量通道
    // 监听系统服务退出信号
    signal.Notify(signalChan, syscall.SIGUSR1, syscall.SIGTERM, syscall.SIGINT, os.Kill)
    for {
        signal := <-signalChan   //读取信号量
        log.Println("Get Signal:%v\r\n", signal)
        switch signal {
        case syscall.SIGTERM, syscall.SIGINT, os.Kill:    //监听退出事件
            log.Fatal("系统退出。。。")
        }
    }
}
func main() {

    flag.Parse()  //解析命令参数
    fmt.Println("Start Proxy...")

    // 解析配置
    parseConfigFile(*configFile)

    // 初始化日志模块
    initLogger()

    // 初始化代理的服务
    initBackendSvrs(Config.Backend)

    // 系统退出信号监听
    go onExitSignal()

    // 初始化状态服务
    initStats()

    // 初始化代理服务
    initProxy()

}

main.go

标签:UI   san   notify   系统服务   imp   系统   tar   文件   microsoft   

原文地址:http://www.cnblogs.com/zhangboyu/p/7456705.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!