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

  • 相关阅读:
    Python 文件Hash(MD5,SHA1)
    CDHtmlDialog探索Javascript与窗体交互
    C++ 实现不允许继承的类
    (一)JDBC入门及简介
    (二)JDBC 连接数据库
    2012年,总结
    canvas 时钟
    解决数据库日志文件过满的又一方法
    Windows XP 注册表修改大全
    windows2003中安装.netframework1.1
  • 原文地址:https://www.cnblogs.com/easydss/p/14189756.html
Copyright © 2011-2022 走看看