|
|
@@ -4,7 +4,6 @@ import (
|
|
|
"fmt"
|
|
|
"os"
|
|
|
"path/filepath"
|
|
|
- "sync"
|
|
|
|
|
|
"gopkg.in/ini.v1"
|
|
|
"hnyfkj.com.cn/rtu/linux/baseapp"
|
|
|
@@ -24,8 +23,14 @@ type Config struct {
|
|
|
}
|
|
|
|
|
|
var (
|
|
|
- CfgServers = &Config{}
|
|
|
- Version = "1.0.0.2"
|
|
|
+ CfgServers = &Config{
|
|
|
+ MQTTSrv: MQTTBroker{
|
|
|
+ Address: "tcp://8.136.98.49:61883",
|
|
|
+ Username: "user",
|
|
|
+ Password: "f335bf402c655ee5fd2b5300905124e",
|
|
|
+ },
|
|
|
+ }
|
|
|
+ Version = "1.0.0.2"
|
|
|
)
|
|
|
|
|
|
func loadCfgServers() error {
|
|
|
@@ -48,19 +53,19 @@ func loadCfgServers() error {
|
|
|
|
|
|
func main() {
|
|
|
baseapp.InitPath()
|
|
|
- if err := EnsureSSHDConfig(); err != nil {
|
|
|
+ sshdCfgFile, err := ensureSSHDConfig()
|
|
|
+ if err != nil {
|
|
|
fmt.Printf("[YFKJ_SSHD] ensure config failed: %v\n", err)
|
|
|
os.Exit(1)
|
|
|
}
|
|
|
- cfgFile := filepath.Join(baseapp.CFG_DIR, "sshd_cfg.ini")
|
|
|
- baseapp.InitLogger(cfgFile)
|
|
|
+
|
|
|
+ baseapp.InitLogger(sshdCfgFile)
|
|
|
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
|
|
|
+ baseapp.Logger.Warnf("[%s] 加载服务器配置项失败: %v!", MODULE_NAME, err)
|
|
|
}
|
|
|
|
|
|
devIMEI := baseapp.GetArgsParamStr("-devIMEI", "")
|
|
|
@@ -96,20 +101,7 @@ Username = user
|
|
|
Password = f335bf402c655ee5fd2b5300905124e
|
|
|
`
|
|
|
|
|
|
-var (
|
|
|
- initCfgOnce sync.Once
|
|
|
- initCfgErr error
|
|
|
-)
|
|
|
-
|
|
|
-func EnsureSSHDConfig() error {
|
|
|
- initCfgOnce.Do(func() {
|
|
|
- initCfgErr = ensureSSHDConfig()
|
|
|
- })
|
|
|
-
|
|
|
- return initCfgErr
|
|
|
-}
|
|
|
-
|
|
|
-func ensureSSHDConfig() error {
|
|
|
+func ensureSSHDConfig() (string, error) {
|
|
|
cfgFile := filepath.Join(
|
|
|
baseapp.CFG_DIR,
|
|
|
"sshd_cfg.ini",
|
|
|
@@ -119,7 +111,7 @@ func ensureSSHDConfig() error {
|
|
|
baseapp.CFG_DIR,
|
|
|
0755,
|
|
|
); err != nil {
|
|
|
- return err
|
|
|
+ return "", err
|
|
|
}
|
|
|
|
|
|
f, err := os.OpenFile(
|
|
|
@@ -129,24 +121,27 @@ func ensureSSHDConfig() error {
|
|
|
)
|
|
|
if err != nil {
|
|
|
if os.IsExist(err) {
|
|
|
- return nil
|
|
|
+ return cfgFile, nil
|
|
|
}
|
|
|
- return err
|
|
|
+ return "", err
|
|
|
}
|
|
|
|
|
|
- defer func() {
|
|
|
+ if _, err = f.WriteString(defaultSSHDCfg); err != nil {
|
|
|
_ = f.Close()
|
|
|
- }()
|
|
|
+ _ = os.Remove(cfgFile)
|
|
|
+ return "", err
|
|
|
+ }
|
|
|
|
|
|
- if _, err = f.WriteString(defaultSSHDCfg); err != nil {
|
|
|
+ if err = f.Sync(); err != nil {
|
|
|
+ _ = f.Close()
|
|
|
_ = os.Remove(cfgFile)
|
|
|
- return err
|
|
|
+ return "", err
|
|
|
}
|
|
|
|
|
|
if err = f.Close(); err != nil {
|
|
|
_ = os.Remove(cfgFile)
|
|
|
- return err
|
|
|
+ return "", err
|
|
|
}
|
|
|
|
|
|
- return nil
|
|
|
+ return cfgFile, nil
|
|
|
}
|