사용자를 위해 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