Nie można użyć argumentu „systemctl --user” z powodu „Nie udało się uzyskać połączenia D-bus: odmowa uprawnień”
Próbuję skonfigurować usługi na poziomie użytkownika za pomocą
ta odpowiedź
https://serverfault.com/a/906224
na podobne pytanie. Utworzyłem wymagane pliki i zrestartowałem.
Robię postępy, ponieważ teraz otrzymuję komunikat „Nie udało się nawiązać połączenia D-bus: odmowa pozwolenia”, gdy było „Nieudane ustanowienie połączenia D-bus: połączenie odrzucone”, ale jestem zaskoczony, ponieważ nie wiem, który to jest obiekt próbuje uzyskać dostęp (plik? gniazdo?) i dlatego nie może nawet sprawdzić bieżących uprawnień. Jakieś pomysły?
Do tej pory dodałem:
loginctl enable-linger userservice
/usr/lib/systemd/user/dbus.service (-rw-r - r to root root)
>
[Unit]
Description=D-Bus User Message Bus
Requires=dbus.socket[Service]
ExecStart=/usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation
ExecReload=/usr/bin/dbus-send --print-reply --session --type=method_call --dest=org.freedesktop.DBus/org.freedesktop.DBus.ReloadConfig[Install]
Also=dbus.socket
/usr/lib/systemd/user/dbus.socket (-rw-r - r - root root)
>
[Unit]
Description=D-Bus User Message Bus Socket[Socket]
ListenStream=%t/bus
ExecStartPost=-/bin/systemctl --user set-environment DBUS_SESSION_BUS_ADDRESS=unix:path=%t/bus[Install]
WantedBy=sockets.target
Also=dbus.service
/home/uservice/.config/systemd/user/uservice.service
>
[Unit]
Description=Test user-level service[Service]
Type=dbus
BusName=com.wtf.service
ExecStart=/home/userservice/userservice.py
Restart=on-failure[Install]
WantedBy=default.target
Żadne linki nie zostały dodane gdzie indziej ...
Aby temu zapobiec:
systemctl --user status
Edycja 2018-10-25:
Dodany
export XDG_RUNTIME_DIR=/run/user/$(id -u)do
.bashrc... Zmienna jest ustawiona i teraz otrzymuję:
Failed to get D-us connection: no such file or directory... Co dziwne, nie
man systemctlani
systemctl --helpwzmianka
--useropcja, podczas gdy obie wspominają
--systemi określ, że jest to ustawienie domyślne (jakie są inne opcje).
Korzystanie z RHEL 7.4 (z
systemd 219jak donosi
systemctl --version) za pomocą SELinux.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
2 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
zmienna środowiskowa nie jest ustawiona prawidłowo lub w ogóle nie jest ustawiona, gdy użytkownicy logują się i dlatego nie mogą uzyskać dostępu do niestandardowej magistrali D-Bus. Dzieje się tak, gdy użytkownik loguje się przy użyciu metody innej niż lokalna konsola graficzna.
Możesz obejść ten problem, dodając do użytkownika
:
Następnie wyloguj się i zaloguj ponownie.
Anonimowy użytkownik
Potwierdzenie od:
https://help.tableau.com/curre ... r.htm
https://help.tableau.com/curre ... htmUsługa użytkownika systemd nie jest używana tak często, jak zwykły menedżer procesów systemd. Red Hat wyłączył niestandardową usługę systemd w RHEL 7 (a zatem we wszystkich dystrybucjach RHEL, takich jak CentOS, Oracle Linux 7, Amazon Linux 2). Jednak RedHat zapewnił Tableau, że uruchamianie niestandardowej usługi systemd jest obsługiwane, o ile usługa jest ponownie włączona.
Jak to robią (przykład z identyfikatorem użytkownika 29575)
Po utworzeniu tego pliku:
Będziesz musiał ustawić XDG_RUNTIME_DIR w środowisku tego użytkownika za pomocą bashrc lub podobnego:
[ -z "${XDG_RUNTIME_DIR}" ] && export XDG_RUNTIME_DIR=/run/user/$(id -ru)
Przetestowałem najnowszy RHEL 7.8 i działa zgodnie z oczekiwaniami, po czym mogę uruchomić "systemctl - status użytkownika" jako mój użytkownik.