
만약 내가한다면:
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