【发布时间】:2021-11-21 17:27:53
【问题描述】:
是否可以从配方中设置 systemd 环境变量以在目标上执行与“systemctl set-environment SOME_ENV_VAR”相同的操作?
【问题讨论】:
是否可以从配方中设置 systemd 环境变量以在目标上执行与“systemctl set-environment SOME_ENV_VAR”相同的操作?
【问题讨论】:
您的配方可以安装systemd.conf.d file 来设置DefaultEnvironment 选项,例如
customrecipe/files/defaultenv.conf[Manager] DefaultEnvironment=CUSTOMENV=42
customrecipe/customrecipe.bbSUMMARY = "Example Recipe" LICENSE = "CLOSED" SRC_URI = "file://defaultenv.conf" do_install() { install -m 0755 -d ${D}${systemd_unitdir}/system.conf.d install -m 0755 ${WORKDIR}/defaultenv.conf ${D}${systemd_unitdir}/system.conf.d/90-defaultenv.conf } FILES_${PN} += "${systemd_unitdir}/system.conf.d"
这与在运行时运行systemctl set-environment CUSTOMENV=42 的效果相同,您可以使用systemctl show-environment 进行验证。
但是,如果只需要为配方已经安装的systemd单元设置环境变量,则修改单元文件(直接或使用sed -i)设置Environment选项会更合适在[exec] 部分。
【讨论】: