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

  • 相关阅读:
    Sharp Develop发布了1.0.3版本
    【历代Windows操作系统大观】(转)
    Matlab与vc混合编程中的问题,使用idl文件
    明天回湖北!今天要开始收拾烂摊子了
    MongoDB深究之ObjectId
    MVC设计模式
    ASP.NET验证控件详解
    C# 中的 LINQ 入门学习摘记
    15款在线科学计算器
    从底层了解ASP.NET架构
  • 原文地址:https://www.cnblogs.com/easydss/p/14189756.html
Copyright © 2020-2023  润新知