systemctl --用户 dbus 问题无法连接到总线:$DBUS_SESSION_BUS_ADDRESS 和 $XDG_RUNTIME_DIR

systemctl --用户 dbus 问题无法连接到总线:$DBUS_SESSION_BUS_ADDRESS 和 $XDG_RUNTIME_DIR

我正在尝试为用户设置 systemd 服务,但是当我尝试启动该服务时,出现以下错误:

$ systemctl --user enable vdirsyncer.timer 
Failed to connect to bus: $DBUS_SESSION_BUS_ADDRESS and 
$XDG_RUNTIME_DIR not defined (consider using --machine=<user>@.host --user 
to connect to bus of other user) 

dbus从我的.xinitrc开始export $(dbus-launch)

$ echo $DBUS_SESSION_BUS_ADDRESS 
unix:path=/tmp/dbus-3kIhCSkzBl,guid=40b6408906fa1337ba8283c06395fb80
    
$ echo $XDG_RUNTIME_DIR 
/run/user/1000 
    
$ systemctl --machine=$USER@$(hostname) --user  enable vdirsyncer.timer 
Cannot access user instance remotely. 

答案1

我遇到了同样的问题。就我而言,问题是我首先使用了su - <user>or 。sudo -u <user>默认情况下,这些命令不保留$DBUS_SESSION_BUS_ADDRESS和等环境变量$XDG_RUNTIME_DIR

使用ssh登录解决了问题: ssh <user>@localhost

答案2

您可能正在使用sudo -u $USER -isu - $USER不为用户模拟完整的 systemd 会话。

您应该首先使用以下命令登录到您的新用户

machinectl shell [email protected]

然后你可以做

systemctl --user enable vdirsyncer.timer

相关内容