我正在通过用户(即enable-linger $USER
)运行 systemd,并且我通过systemctl --user
我注意到一个奇怪的问题。
采购类型 1
为了让上面的 systemd 为用户工作,我需要export XDG_RUNTIME_DIR=/run/user/$(id -u)
在我的里面添加~/.bashrc
这很好用。
采购类型 2
当我改为按如下方式获取我的 bashrc 时,systemd 不起作用:
里面.bashrc
:
source /path_to_file/my_file.env
里面my_file.env
:
XDG_RUNTIME_DIR=/run/user/$(id -u)
当我这样做时,Sourcing Type 1 和 2 都会产生相同的结果,echo $XDG_RUNTIME_DIR
所以我决定使用 Type 2。但是后来我注意到当我这样做时systemctl --user daemon-reload
守护进程没有运行并且我收到以下错误:
Failed to connect to bus: No such file or directory
当我恢复到 Souring Type 1 时,错误消失了,一切都按预期进行。
我的问题是:我在这里想念的是什么?我的主要困惑源于 env 变量相同,但最终结果不同。