![사용자 데몬 다시 로드가 실패하는 이유는 무엇입니까? [복사]](https://linux55.com/image/155072/%EC%82%AC%EC%9A%A9%EC%9E%90%20%EB%8D%B0%EB%AA%AC%20%EB%8B%A4%EC%8B%9C%20%EB%A1%9C%EB%93%9C%EA%B0%80%20%EC%8B%A4%ED%8C%A8%ED%95%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
만약 내가한다면:
sudo systemctl --user daemon-reload
다음과 같이 실패합니다.
Failed to connect to bus: No such file or directory
패키지 설치이므로 "sudo"가 필요합니다.
답변1
을 사용하면 루트로 실행 sudo
됩니다 systemctl --user
. 그러나 루트가 당시 로그인되어 있지 않으면 루트에는 활성 사용자별 D-Bus 인스턴스가 없습니다.
실제로 로그인한 사용자만이 사용자별 D-Bus 인스턴스를 실행합니다. 이러한 특별한 의미에서 su
or 를 사용하는 것이 sudo
반드시 실제 로그인과 동일하지는 않습니다. Linux 배포판에 이 loginctl
명령이 있는 경우 매개 변수 없이 명령을 사용하여 활성 세션이 있는 사용자를 확인합니다(활성 사용자별 D-Bus 인스턴스가 있다는 의미).
이 --global
옵션은 systemctl enable
또는 에만 적용됩니다 systemctl 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