systemctl --user dbus 문제 버스에 연결할 수 없습니다: $DBUS_SESSION_BUS_ADDRESS 및 $XDG_RUNTIME_DIR

systemctl --user 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

나는 같은 문제에 직면했다. 내 경우에는 or을 먼저 사용하는 것이 문제였다 su - <user>. sudo -u <user>기본적으로 이러한 명령은 $DBUS_SESSION_BUS_ADDRESS및 같은 환경 변수를 유지하지 않습니다 $XDG_RUNTIME_DIR.

SSH를 사용하여 로그인하면 문제가 해결되었습니다. ssh <user>@localhost

답변2

사용자에 대한 전체 시스템 세션을 시뮬레이션 할 수도 sudo -u $USER -i있고 그렇지 않을 수도 있습니다.su - $USER

먼저 다음 명령을 사용하여 새 사용자로 로그인해야 합니다.

machinectl shell [email protected]

그럼 당신은 할 수 있습니다

systemctl --user enable vdirsyncer.timer

관련 정보