systemd-nspawn 环境变量

systemd-nspawn 环境变量

我创建了一个 systemd-nspawn 容器并在匹配的文件中设置环境变量.nspawn(例如DISPLAY=:0)。启动容器后,变量被正确传递给 PID 1:

$ sudo cat /proc/1/environ 
  PATH=/usr/local/sbin:/usr/local/bin...(omitted)...DISPLAY=:0

但是,环境变量没有传递给bash登录 shell。为什么?

$ env
  SHELL=/bin/bash
  ...(etc, no DISPLAY variable)...

我预计登录 shell 将从 PID 1 继承环境变量。

答案1

默认情况下,systemd 不会将为 systemd 设置的环境变量传递给执行的进程。可以通过使用PassEnvironment=容器内的 systemd 单元来更改此行为,其中您想要访问环境变量,请参阅systemd.exec了解详情。

相关内容