我想在具有只读 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>