使用非标准位置进行 avahi 服务

使用非标准位置进行 avahi 服务

我想在具有只读 rootfs 且/etc不可写的系统上使用 avahi。

我可以avahi-daemon-f指定文件的非标准位置的选项开始avahi-daemon.conf(默认位置是/etc/avahi/avahi-daemon.conf)。但是,我找不到任何方法来指定服务定义的非标准位置(默认位置是/etc/avahi/services)。有什么选择吗?

答案1

似乎 Avahi 没有提供任何用于在非标准位置搜索服务定义的配置选项(除了使用自定义重建之外--prefix,但这显然还有其他含义)。如果其他人需要这个,这些是我找到的选项:

  • 将 /etc/avahi/services 符号链接到不同的目录。为此,avahi 守护进程必须使用以下--no-chroot选项启动:否则它将无法脱离 chroot 监狱。
  • 在 /etc/avahi/services 上绑定挂载不同的目录。这并不要求--no-chroot使用它。

两种选择都可以正常工作。

答案2

(使用答案窗口,因为它有更多格式选项)

请注意,Avahi 服务定义允许使用通配符。这可能足以允许在多个主机上使用相同的定义,从而允许只读 /etc:

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
  <name replace-wildcards="yes">%h</name>
  <service>
    <type>_ssh._tcp</type>
    <port>22</port>
  </service>
</service-group>

相关内容