Systemd
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 繼承環境變數。
預設情況下,systemd 不會將 systemd 設置的環境變數傳遞給已執行的程序。可以通過使用容器內的 systemd 單元來更改此行為
PassEnvironment=
,您希望在其中訪問環境變數,有關詳細資訊,請參閱systemd.exec。