Plainnotes

EnvironmentFile 里的引号和空格

2026-05-27 · 2 分钟系统

EnvironmentFile=/etc/default/app 里写:

TOKEN=abc def

服务起来后 $TOKEN 只有 abc,后面的 def 被当成了另一个变量名的一部分或者直接忽略。systemd 的 EnvironmentFile 不是 shell,不支持命令替换,引号规则也不一样:含空格的值必须整体加引号,且不能有 export。

TOKEN="abc def"

另一个坑是行尾注释。FOO=bar # comment 在某些版本里会把 # comment 也算进值里。注释单独一行写。

排查时 systemctl show app -p Environment 能直接看到 systemd 解析出来的结果,比猜快。