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

时间:2019-12-03
本文章向大家介绍高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器RTMP推流服务器EasyDSS遇到easydss: [emerg] getpwnam(“nobody”) failed错误的排查方案,主要包括高性能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遇到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发行版,可以及时与我们沟通排查。

原文地址:https://www.cnblogs.com/EasyNVR/p/11977895.html