欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

流媒体服务器RTMP推流EasyDSS遇到easydss: [emerg] getpwnam(“nobody”) failed错误的的排查方案

程序员文章站 2022-07-05 11:35:09
...

背景分析

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

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

流媒体服务器RTMP推流EasyDSS遇到easydss: [emerg] getpwnam(“nobody”) failed错误的的排查方案

 

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发行版,可以及时与我们沟通排查。

 

流媒体服务器RTMP推流EasyDSS遇到easydss: [emerg] getpwnam(“nobody”) failed错误的的排查方案