사용자 데몬 다시 로드가 실패하는 이유는 무엇입니까?

사용자 데몬 다시 로드가 실패하는 이유는 무엇입니까?

만약 내가한다면:

sudo systemctl --user daemon-reload

다음과 같이 실패합니다.

Failed to connect to bus: No such file or directory

패키지 설치에 속하므로 "sudo"가 필요합니다.

답변1

를 사용하면 루트로 sudo실행됩니다 systemctl --user... 그러나 루트가 당시 로그인되어 있지 않으면 루트에 대한 활성 사용자별 D-Bus 인스턴스가 없습니다.

실제 로그인한 사용자만이 사용자별 D-Bus 인스턴스를 실행합니다. 이러한 특별한 의미에서 suor 를 사용하는 sudo것은 실제 로그인과 완전히 동일하지 않을 수도 있습니다. Linux 배포판에 해당 loginctl명령이 있는 경우 매개변수 없이 이를 사용하여 어떤 사용자가 활성 세션을 가지고 있는지 확인합니다(활성 사용자별 D-Bus 인스턴스가 있다는 의미에서).

이 옵션은 또는 --global에서만 의미가 있습니다 .systemctl enablesystemctl disable

현재 활성화된 모든 사용자의 세션에서 실행하려면 systemctl --user daemon-reload다음과 같이 하면 됩니다.

#!/bin/sh
for reloaduser in $(loginctl --no-legend list-users | awk '{print $2;}')
do
    sudo -u $reloaduser systemctl --user daemon-reload
done

관련 정보