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

    }
  • 相关阅读:
    【Spring Cloud】异常记录
    目录
    java8 语言特性
    Java 8 并发编程
    Spring Boot系列(四) Spring Cloud 之 Config Client
    找到字符串中最长的非重复子串
    Spring Boot系列(四) Spring Boot 之验证
    链表两数相加(add two numbers)
    找到数组中和为给定值的两个数
    Spring Boot系列(三) Spring Boot 之 JDBC
  • 原文地址:https://www.cnblogs.com/zhangboyu/p/7461944.html
Copyright © 2020-2023  润新知