红联Linux门户
Linux帮助

EasyDSS RTMP流媒体服务器运行遇到getpwnam("xxxxx")的解决

发布时间:2017-06-28 10:50:05来源:EasyDarwin.org作者:xcyl
近期有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 RTMP流媒体服务器运行遇到getpwnam("xxxxx")的解决
 
解决方案
运行easydss for linux时,遇到getpwnam错误时,检查nobody用户和nobody组是否存在,不存在则添加。
较小众或者版本较低的linux发行版,请联系EasyDarwin团队进行支持。 
 
本文永久更新地址:http://www.linuxdiyf.com/linux/31770.html