• 高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器RTMP推流服务器EasyDSS遇到easydss: [emerg] getpwnam(“nobody”) failed错误的排查方案


    背景分析

    今年,“5G+8K”高清视频等创新应用首次亮相。在广州、深圳两地的5G规模试验外场,广东移动在广州珠江边和深圳深南大道分别架设了360度高清摄像头,代表们在北京就能通过VR眼镜等设备看到家乡的景观,还能远程操控摄像头,实时调整视角、缩放画面,远处的画面放大之后也清晰可见。5G视频传输的应用成果迭出,设置掀起了一波“5G视频直播热”。为应对“5G+8k”技术的应用,青犀团队也不断创新,EasyDSS流媒体服务器率先在5K技术上实践。

    EasyDSS流媒体服务器具有高效的视频管理功能,支持一站式的上传、转码、直播、回放、嵌入、分享功能,具有多屏播放、自由组合、接口丰富等特点。

    EasyDSS.png

    EasyDSS遇到getpwnam(xxxxx)错误

    在运行EasyDSS过程中,不少开发者会因为操作不当,或者缺少文件而导致服务器运行失败,也有开发者以及用户反映运行easydss for linux会遇到easydss: [emerg] getpwnam(“nobody”) failed错误,导致easydss无法运行。

    分析问题

    我们使用getpwnam这个函数来获取nobody账户的账户信息,并且我们默认任务这个nobody属于nobody用户组。

    这里主要分为两种情况

    1、在部分Linux发行版中默认无nobody用户组(如:ubuntu 14.04.1 LTS)。这里就需要添加nobody用户组,并且把nobody用户加入nobody用户组。
    命令为:

    groupadd nobody
    usermod -a -G nobody nobody
    

    查看用户命令为cat /etc/passwd,查看用户组为cat /etc/group

    2、我们easydss for linux使用ubuntu 14.04 LTS编译,并且“试图”使用-static解决所有linux发行版的运行兼容问题,结果,这里就是此问题引起。

    if you link your program statically to GNU libc and use name services (getpwnam() etc.), you end up linked dynamically against libc’s NSS (name service switch).

    解决问题

    运行easydss for linux时,如果遇到getpwnam错误,首先需要检查nobody用户和nobody组是否存在,如若不存在,我们就添加上去。较小众或者版本较低的linux发行版,可以及时与我们沟通排查。

    DSS2.png

  • 相关阅读:
    Hiho----无间道之并查集
    Linux之压缩与解压
    Linux之用户和用户组
    Linux之关机/重启命令及一些符号
    Linux之基本操作命令
    Linux之vi/vim
    解决eclipse中maven报错Failed to read artifact descriptor for xxxx:jar
    CentOS 7下 solr 单机版安装与配置
    CentOS 7下 Tomcat7 安装与配置
    CentOS 7下 JDK 1.7 安装与配置
  • 原文地址:https://www.cnblogs.com/EasyNVR/p/11977895.html
Copyright © 2020-2023  润新知