avahi-daemon是一種Linux操作系統上運行在客戶機上實施查找基於網絡的Zeroconf service的服務守護進程。 該服務可以為Zeroconf網絡實現DNS服務發現及DNS組播規范。 用戶程序通過Linux D-Bus信息傳遞接收發現到網絡服務和資源的通知。 該守護進程配合緩存用戶程序的答復,以幫助減少因答復而產生的網絡流量。
目前工作中使用到的目的是為了在手機端使用類似ZeroConf 軟件,能在http服務中找到運行中的設備以及顯示相關的信息,便於工作人員的維護。
記錄工作遇到的問題
- 在文件系統添加了dbus、avahi 相關的配置
- 啟動時,avahi-daemon無法正常啟動,使用指令avahi-daemon時,啟動失敗,錯誤原因:dbus連接未成功,解決如下:
- 在/etc/init.d/目錄下,找到dbus,使用指令 dbus start, 開啟dbus服務
- 重新使用avahi-daemon指令開啟服務,啟動失敗,錯誤原因:沒有權限
- 根據錯誤提示,執行指令 chmod 771 /...(錯誤提示無權限目錄)
- 再次執行avahi-daemon指令,啟動失敗,錯誤原因:socket 沒有權限
- 這個錯誤是由linux內核中的部分配置引起的, ANDROID_PARANOID_NETWORK, android paranoid網絡,對linux內核網絡部分的改動,通過這個改動增加了網絡的認證機制。從而導致avahi-daemon無法正常啟動。修改linux內核中的相關配置。
- 將該網絡的相關配置關閉后,avahi-daemon服務啟動成功
- avahi-daemon服務啟動,但是缺少http服務,只有ssh與FTP服務。解決方法,添加http.service服務,在/etc/avahi/services目錄下。添加服務后有可能會出現無法打開你添加的服務文件,可以使用chmod 644 (你添加的文件)。因為avahi-daemon需要有root的權限執行。
- 參考網站 :
- http://hyb757.blog.163.com/blog/static/337191012011380393068/
- https://dev.openwrt.org/browser/packages/libs/avahi/files/service-http?rev=15247
- http://unix.stackexchange.com/questions/268639/avahi-daemon-fails-to-start-with-failed-to-chroot-permission-denied-but-on
- https://lists.linaro.org/pipermail/linaro-dev/2012-Apr
