首页/系统/Linux 运维命令速查/服务环境变量注入(EnvironmentFile)
systemd 与服务42 条

服务环境变量注入(EnvironmentFile)

systemd 服务环境变量三种写法:单元内联 Environment=、外部 EnvironmentFile=、以及 ExecStart 里显式 env;敏感配置放文件并用 600 权限。

Linux 运维命令速查系统更新于 2026-10-12
用途向服务进程注入环境变量
语法Environment= / EnvironmentFile= [- 前缀表示可选]
所属systemd

文件注入示例

文件注入示例
[Service]
EnvironmentFile=/etc/myapp/env
EnvironmentFile=-/etc/myapp/env.optional
Environment=LOG_LEVEL=info

env 文件格式

env 文件格式
# /etc/myapp/env(无 export,KEY=VALUE,行内不带引号)
DB_HOST=127.0.0.1
DB_PORT=5432
EnvironmentFile 会被 root 读取后注入:权限设为 600 并属主 root;文件里的值会出现在 systemctl show 输出中,敏感项应注意展示面。

易错点

  • env 文件里写了 export 或引号会被当作值的一部分,导致变量值错误
  • EnvironmentFile 变更后需要 systemctl daemon-reload 吗?不需要——文件在服务启动时读取,restart 服务即生效

数据来源与参考

  • man 5 systemd.exec(Environment/EnvironmentFile)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌