• RTMP协议视频直播点播平台EasyDSS在Linux系统中以服务启动报错can’t evaluate field RootPath in type*struct排查


    TSINGSEE青犀视频团队最近接到了很多关于平台定制的项目,在EasyDSS的定制项目中,我们在Linux系统中以服务运行程序,发现程序无法启动,并且报错:can’t evaluate field RootPath in type*struct{*service.Config: Path string; ReloadSignal string; PIDFile string}

    查看service.Config代码如下:

    var to = &struct {
       *Config
       Path string
    }{
       s.Config,
       path,
    }
    err = s.template().Execute(f, to)
    

    该行代码从模板中读取信息。模板信息如下:

    const sysvScript = `#!/bin/sh
    # For RedHat and cousins:
    # chkconfig: - 99 01
    # description: {{.Description}}
    # processname: {{.RootPath}}
    
    

    我们可以看到service.Config代码中是path,而模板信息中是RootPath,这里问题就很明显了,是RootPath和Path不对应导致的。

    关于服务的代码,未修改过,因此还原到以前的版本,将 RootPath 全部还原为Path。随后重新启动服务,则启动成功。

    我们查询了Path 修改为 RootPath 的原因,发现是因为 GoLand 的使用错误。当在其他文件中重构 Path 时,会搜索整个项目的字符串中包含的 Path,并不仅仅修改对应的结构体。因此在使用 Refactor 时,需要确认下自己修改的仅仅是自己的字符串,防止修改过多的现象出现。

    EasyDSS视频平台的定制涉及到很多方面,当然即便是非定制版本,也足够大部分场景的使用了,比如景区智慧旅游体系电梯云物联解决方案等,有兴趣的朋友可以联系我们更深入了解或者测试。

  • 相关阅读:
    搜狗图片抓取,主要以图集类进行抓取
    使用mongo进行去重操作
    爬虫实战01_淘宝模拟登录
    Linux常用命令02(远程管理)
    Linux常用命令01(文件和目录)
    Linux终端命令格式
    常用Linux命令的基本使用
    闭包与私有变量
    三栏布局的几种方法
    redux和react-redux小记
  • 原文地址:https://www.cnblogs.com/easydss/p/14189756.html
Copyright © 2020-2023  润新知