偶尔,我注意到我无法检测到我在Ubuntu上通过avahi(bonjour)发布的服务。例如,avahi-browse -a不显示已发布的服务,浏览器不解析已发布的.local主机名。在服务器端,我注意到ps
的输出表明avahi-daemon
卡住了注册服务:
ubuntu@node3:~$ ps aux | grep [a]vahi
root 26584 0.0 0.0 4204 356 ? S 19:21 0:00 supervise avahi
ubuntu 26598 0.0 0.0 4216 352 ? S 19:21 0:00 multilog s8388608 n10 /var/log/avahi
avahi 28332 0.0 0.0 32352 1636 ? S 20:19 0:00 avahi-daemon: registering [node3-44.local]
avahi 28333 0.0 0.0 32224 468 ? S 20:19 0:00 avahi-daemon: chroot helper
root 28338 0.0 0.0 17192 1028 ? S 20:19 0:00 avahi-publish-service -as node3 _foobar._tcp 8080
以下是“unstuck”主机上此命令的输出结果:
ubuntu@node2:~$ ps aux | grep [a]vahi
root 26501 0.0 0.0 4204 356 ? S 19:21 0:00 supervise avahi
ubuntu 26527 0.0 0.0 4216 352 ? S 19:21 0:00 multilog s8388608 n10 /var/log/avahi
avahi 29418 0.0 0.0 32484 1632 ? S 20:12 0:00 avahi-daemon: running [node2.local]
avahi 29419 0.0 0.0 32224 464 ? S 20:12 0:00 avahi-daemon: chroot helper
root 29425 0.0 0.0 17192 1032 ? S 20:12 0:00 avahi-publish-service -as node2 _foobar._tcp 8080
我确实看到了这个旧的bug report,这可能是相关的。有时候杀死avahi-daemon
似乎暂时解决了这个问题。此外,一次尝试重新启动卡住的机器工作。但是,我想了解为什么会发生这种情况以及如何以最可靠的方式处理问题。有什么想法吗?
答案 0 :(得分:0)
我注意到,在Avahi网站上,201票已经存在了一段时间。虽然我甚至无法在那里注册......看起来这个项目的开发已经下降了。我们遇到了类似的问题。以下内容(对我们而言):
diff --git a/avahi-core/server.c b/avahi-core/server.c index 69a1d02..03d4fc1 100644 --- a/avahi-core/server.c +++ b/avahi-core/server.c @@ -1216,8 +1216,8 @@ static void register_browse_domain(AvahiServer *s) { static void register_stuff(AvahiServer *s) { assert(s); - server_set_state(s, AVAHI_SERVER_REGISTERING); s->n_host_rr_pending ++; /** Make sure that the state isn't changed tp AVAHI_SERVER_RUNNING too early */ + server_set_state(s, AVAHI_SERVER_REGISTERING); register_hinfo(s); register_browse_domain(s);