사용자 셸에 로그인하지 않고 루트 셸에서 사용자 서비스를 시작하고 싶습니다.
다음 명령을 시도했지만 실패했습니다.
#> su - username -c "systemctl --user"
Failed to connect to bus: No such file or directory
목표를 달성하려면 어떻게 해야 하나요?
답변1
다음 명령은 작동하는 것 같지만 다소 불편해 보입니다.
su - username --shell=/bin/sh -c 'export XDG_RUNTIME_DIR=/run/user/$(id -u); systemctl --user'
답변2
다음은 나에게 효과적이었습니다.
runuser -u USER -- systemctl --user start USER.SERVICE
답변3
나는 간단한 것을 사용하고 있습니다
# systemctl start servicename@username
예를 들어
# systemctl start tmux@e
글로벌 시스템 관리를 위해 자체 tmux 세션을 시작하는 데 사용됩니다.
답변4
다른 답변의 모든 부분을 하나로 모으고 ( runuser
대신 권장 답변을 사용하여 su
) 현재 Debian/Ubuntu에서 작동합니다.
runuser username -c 'env XDG_RUNTIME_DIR=$(id -u) systemctl --user'