| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package main
- import (
- "fmt"
- "path/filepath"
- "gopkg.in/ini.v1"
- "hnyfkj.com.cn/rtu/linux/baseapp"
- "hnyfkj.com.cn/rtu/linux/sshd"
- )
- const MODULE_NAME = sshd.MODULE_NAME
- type MQTTBroker struct {
- Address string `ini:"BrokerAddress"` // 地址端口
- Username string `ini:"Username"` // 用户名称
- Password string `ini:"Password"` // 接入密码
- }
- type Config struct {
- MQTTSrv MQTTBroker `ini:"MQTTSrv"`
- }
- var (
- CfgServers = &Config{}
- Version = "1.0.0.1"
- )
- func loadCfgServers() error {
- cfgFile := filepath.Join(baseapp.CFG_DIR, "sshd_cfg.ini")
- cfgIni, err := ini.Load(cfgFile)
- if err != nil {
- return err
- }
- if cfgIni.HasSection("MQTTSrv") {
- if err := cfgIni.Section("MQTTSrv").MapTo(&CfgServers.MQTTSrv); err != nil {
- return err
- }
- } else {
- return fmt.Errorf("配置文件\"%s\"缺少\"[MQTTSrv]\"节", cfgFile)
- }
- return nil
- }
- func main() {
- baseapp.InitPath()
- cfgFile := filepath.Join(baseapp.CFG_DIR, "sshd_cfg.ini")
- baseapp.InitLogger(cfgFile)
- baseapp.SingleInstanceRun() // 异步非阻塞
- baseapp.Logger.Infof("程序版本: %s 构建时间: %s\n程序开始运行...",
- Version, baseapp.BuildTime)
- if err := loadCfgServers(); err != nil {
- baseapp.Logger.Errorf("[%s] 加载服务器配置项失败: %v!!", MODULE_NAME, err)
- return
- }
- success := sshd.ModuleInit(CfgServers.MQTTSrv.Address, CfgServers.MQTTSrv.Username, CfgServers.MQTTSrv.Password)
- if !success {
- return
- }
- <-baseapp.IsExit2()
- sshd.ModuleExit()
- baseapp.Logger.Info("程序退出")
- baseapp.ExitLogger() // 安全的关闭日志模块
- baseapp.SafeExit() // 安全的关闭退出程序
- }
|