流媒體服務器RTMP推流EasyDSS遇到easydss: [emerg] getpwnam(“nobody”) failed錯誤的的排查方案

背景分析

今年,“5G+8K”高清視頻等創新應用首次亮相。在廣州、深圳兩地的5G規模試驗外場,廣東移動在廣州珠江邊和深圳深南大道分別架設了360度高清攝像頭,代表們在北京就能通過VR眼鏡等設備看到家鄉的景觀,還能遠程操控攝像頭,實時調整視角、縮放畫面,遠處的畫面放大之後也清晰可見。5G視頻傳輸的應用成果迭出,設置掀起了一波“5G視頻直播熱”。爲應對“5G+8k”技術的應用,青犀團隊也不斷創新,EasyDSS流媒體服務器率先在5K技術上實踐。

EasyDSS流媒體服務器具有高效的視頻管理功能,支持一站式的上傳、轉碼、直播、回放、嵌入、分享功能,具有多屏播放、自由組合、接口豐富等特點。

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發行版,可以及時與我們溝通排查。

 

EasyDSS 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章