zoukankan      html  css  js  c++  java
  • man.go 阅读笔记

    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()  //初始化代理服务

    }
  • 相关阅读:
    Codeforces Global Round 6
    Codeforces Global Round 5
    笔记
    笔记
    Codeforces Round #608 (Div. 2)
    模板
    Codeforces Round #607 (Div. 2)
    find命令
    while循环脚本
    发邮件
  • 原文地址:https://www.cnblogs.com/zhangboyu/p/7461944.html
Copyright © 2011-2022 走看看