avahi-daemon是一種Linux操作系統上運行在客戶機上實施查找基於網路的Zeroconf service的服務守護進程。 該服務可以為Zeroconf網路實現DNS服務發現及DNS組播規範。 用戶程式通過Linux D-Bus信息傳遞接收發現到網路服務和資源的通知。 該守護進程配合緩存用戶 ...
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