systemd-networkd:配置文件优先级是什么

systemd-networkd:配置文件优先级是什么

我有一个需要通过配置的系统systemd-networkd。为了配置以太网适配器,我创建了一个包含以下内容的eth0文件:/etc/systemd/network/eth.network

[Match]
Name=eth*
KernelCommandLine=!nfsroot

[Network]
Address=10.0.1.100/24
Gateway=10.0.1.1
DNS=8.8.8.8

不幸的是,将日志输出设置为详细后,我发现systemd-networkd实际上读取了它的配置,从而/lib/systemd/network/80-wired.network为该适配器配置了 DHCP。

我的问题是:删除/移动该文件安全吗?为什么它会覆盖我的文件?(我的印象是,它/etc优先于 systemd 附带的文件。)

编辑:我正在使用 yocto 项目的 poky 参考分布的修改版。

答案1

/etc、/run 和 /usr/lib 中相应目录中的所有文件都被收集到一个列表中。

优先顺序是每个文件– 如果 /etc 和 /usr 中有两个文件同名,则 /etc 中的文件优先,而 /usr 中的文件将被忽略。(/usr 的其余部分不会被忽略,只有那个文件会被忽略。)这适用于大多数与 systemd 相关的配置。

之后,对于匹配导向的文件(如 .network 文件),整个列表为按文件名的 ASCII 顺序排序,第一个匹配的文件获胜。文件来自哪个目录并不重要 - 只要它在列表顶部,它就会获胜。

在 ASCII 中,所有数字 (0x30–0x39) 将排在任何字母 (0x40–0x7f) 之前。意思是,8*排在 之前e*

这就是包含的文件被命名的原因80-something——它为您的自定义文件命名27-whatever或留下了空间50-whatever

相关内容