【问题标题】:Are environment variables created in systemd on Linux via "set-environment" in-memory or on disk?环境变量是在 Linux 上的 systemd 中通过内存中的“set-environment”还是在磁盘上创建的?
【发布时间】:2020-07-04 10:05:28
【问题描述】:

如果我运行命令

systemctl set-environment VARIABLE=VALUE

是只存储在内存中,还是持久化到磁盘中?

【问题讨论】:

    标签: linux bash environment-variables systemd


    【解决方案1】:

    systemctl 的 {set,unset,import}-environment 子命令仅影响运行时配置(即它们只持续到重新启动,但将继续存在 systemctl daemon-reexecsystemctl daemon-reload)。

    如果您在任何情况下都想使环境配置永久化,您可以使用/etc/systemd/system.conf(参见systemd-system.conf(5))中的DefaultEnvironment= 指令进行系统范围的环境变量配置或Environment=(@ 987654322@) 用于单位配置。

    【讨论】:

    • 感谢您的帮助!我希望它们持续存在,我只希望它们在内存中。是否有任何文档表明它们从未持久化到磁盘? (即使它们只持续到重新启动,也不能保证它不在磁盘上)
    • 不幸的是,我不知道这方面的任何文档。我只能向您指出相关的源代码。在这种特定情况下,systemctl 只需调用SetEnvironment D-Bus 方法,而该方法在另一端调用manager_client_environment_modify function。我承认它不像有文档那么清楚,但事实就是这样。
    猜你喜欢
    • 1970-01-01
    • 2011-11-25
    • 2012-05-13
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 2021-10-12
    • 1970-01-01
    相关资源
    最近更新 更多