如何通过BitBake向systemd的system.conf添加配置项?
优雅修改systemd system.conf的BitBake方案
方法1:使用systemd Drop-In配置文件(推荐)
systemd原生支持通过/etc/systemd/system.conf.d/目录下的配置片段补充或覆盖主配置,这是官方推荐的无侵入式修改方式,完全不需要改动原始的system.conf文件。
在你的systemd_%.bbappend文件中添加以下内容:
do_install:append() { # 创建system.conf.d配置片段目录 install -d ${D}${sysconfdir}/systemd/system.conf.d/ # 写入自定义配置文件,文件名前缀用99确保加载优先级最高 cat > ${D}${sysconfdir}/systemd/system.conf.d/99-disable-cpu-controller.conf <<EOF [Manager] DisableControllers=cpu EOF }
systemd启动时会自动加载该目录下的所有配置片段,其优先级高于主配置文件中的设置,既安全又符合systemd的设计规范。
方法2:用sed精准修改原system.conf文件
如果必须修改原始配置文件,可以通过sed命令精准定位到[Manager]段后插入配置项,比直接追加到文件末尾更严谨:
在systemd_%.bbappend中添加:
do_install:append() { CONF_PATH="${D}${sysconfdir}/systemd/system.conf" # 先检查配置是否已存在,避免重复添加 if ! grep -q "^DisableControllers=cpu$" "${CONF_PATH}"; then # 定位到[Manager]行,在其下一行插入配置 sed -i '/^\[Manager\]$/a DisableControllers=cpu' "${CONF_PATH}" fi }
内容的提问来源于stack exchange,提问作者code_fodder
相关产品推荐
相关产品推荐

