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