Назад | Перейти на главную страницу

переменные среды 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 оболочка входа в систему. Зачем?

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

Я ожидал, что оболочка входа унаследует переменные среды от PID 1.

По умолчанию systemd не передает переменные среды, установленные для systemd, в выполняемые процессы. Это поведение можно изменить, используя PassEnvironment= для модулей systemd внутри контейнера, где вы хотите получить доступ к переменным среды, см. systemd.exec для подробностей.