【问题标题】:Yocto: systemd: set systemd environment variable in recipeYocto:systemd:在配方中设置 systemd 环境变量
【发布时间】:2021-11-21 17:27:53
【问题描述】:

是否可以从配方中设置 systemd 环境变量以在目标上执行与“systemctl set-environment SOME_ENV_VAR”相同的操作?

【问题讨论】:

    标签: yocto systemd


    【解决方案1】:

    您的配方可以安装systemd.conf.d file 来设置DefaultEnvironment 选项,例如

    customrecipe/files/defaultenv.conf

    [Manager]
    DefaultEnvironment=CUSTOMENV=42
    

    customrecipe/customrecipe.bb

    SUMMARY = "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] 部分。

    【讨论】:

    • 谢谢,这是一个很好的解决我的问题的方法:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-05
    • 2011-09-11
    • 2016-10-18
    • 1970-01-01
    相关资源
    最近更新 更多