zoukankan      html  css  js  c++  java
  • main.go

    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
    ", 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()

    }

  • 相关阅读:
    Django 2.1 配sql server 2008R2
    1.内网安全代理技术
    3.frp搭建socks5代理
    2.变量常量和注释
    1.域环境&工作组&局域网探针方案
    4.nps搭建socks5代理
    1.php介绍和安装
    2.内网安全隧道技术
    3.横向smb&wmi明文或hash传递
    5.域横向CobaltStrike&SPN&RDP
  • 原文地址:https://www.cnblogs.com/zhangboyu/p/7456705.html
Copyright © 2011-2022 走看看