返回介绍

environment.d 中文手册

发布于 2020-11-08 09:27:15 字数 2852 浏览 1469 评论 0 收藏 0

名称

environment.d — 定义 systemd 用户实例的运行环境

大纲

~/.config/environment.d/*.conf

/etc/environment.d/*.conf

/run/environment.d/*.conf

/usr/lib/environment.d/*.conf

/etc/environment

描述

environment.d 目录中包含了一系列用于设置用户运行环境的"全局"环境变量。systemd-environment-d-generator(8)将会使用这些变量来更新 systemd 用户实例(--user)所启动的服务的运行环境。

为了简化配置文件的排序,建议在所有配置文件的名字中都使用两位数字的前缀。

出于向后兼容的原因,将会默认安装一个指向 /etc/environment 的软连接,以确保包含该文件的内容。

配置目录及其优先级

配置文件依次从/etc/, /run/, /usr/lib/目录中读取。配置文件的名称必须符合 filename.conf 格式。对于不同目录下的同名配置文件,仅以优先级最高的目录中的那一个为准。具体说来就是:/etc/ 的优先级最高、/run/ 的优先级居中、/usr/lib/ 的优先级最低。

软件包应该将自带的配置文件安装在 /usr/lib/ 目录中。/etc/ 目录仅供系统管理员使用。所有的配置文件(无论位于哪个目录中),统一按照文件名的字典顺序处理。如果在多个配置文件中设置了同一个选项,那么仅以文件名最靠后(字典顺序)的那一个为准。为了便于排序,建议给所有配置文件都加上两位十进制数字的文件名前缀。

如果系统管理员想要屏蔽 /usr/lib/ 目录中的某个配置文件,那么最佳做法是在 /etc/ 目录中创建一个指向 /dev/null 的同名符号链接,即可彻底屏蔽 /usr/lib/ 目录中的同名文件。如果软件包自带的某个配置文件位于 initrd 镜像中,那么还必须重新生成 initrd 镜像。

配置文件格式

配置文件包含一系列由换行符分隔的"KEY=VALUE"行。可以在等号右侧使用 "${OTHER_KEY}"或 "$OTHER_KEY" 格式直接引用先前已经定义过的环境变量;也可以在等号右侧使用 "${FOO:-DEFAULT_VALUE}"格式表示如果环境变量 FOO 的值为空,那么展开为 DEFAULT_VALUE (相当于默认值),否则严格按照 "${FOO}" 的方式按原值展开;还可以在等号右侧使用"${FOO:+ALTERNATE_VALUE}"格式表示如果环境变量 FOO 的值为非空,那么展开为 ALTERNATE_VALUE (相当于强制替换为另一个值),否则严格按照 "${FOO}" 的方式展开为空值。除此之外,不再支持任何其他的 shell 语法。

每一个 KEY 都必须是一个合格的变量名(符合变量命名规则)。空行或者以 "#" 开头的行都将被忽略。

例子

例 1. 设置环境变量以允许访问安装在 /opt/foo 目录中的程序

/etc/environment.d/60-foo.conf:

  FOO_DEBUG=force-software-gl,log-verbose  PATH=/opt/foo/bin:$PATH  LD_LIBRARY_PATH=/opt/foo/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}  XDG_DATA_DIRS=/opt/foo/share:${XDG_DATA_DIRS:-/usr/local/share/:/usr/share/}  

参见

systemd(1),systemd-environment-d-generator(8),systemd.environment-generator(7)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文