Najbardziej prawdopodobnym wyjaśnieniem jest to, że polecenie gnome-screensaver, gdy jest uruchamiane w kontekście udostępnianym przez udev, nie ma pojęcia którego wygaszacz ekranu na który wyświetlacz ma komendę - nie działa pod kontem użytkownika i nie ma zmiennych środowiskowych propagowanych podczas sesji użytkownika X.
Podejście, które może prawdopodobne być stworzonym do pracy:
- uruchom komendę gnome-screensaver-su pod su do swojego użytkownika
- upewnij się, że zmienna środowiskowa DISPLAY ma taką samą wartość, jaką ma w terminalu w sesji X.
- upewnij się, że ustanowiono uprawnienia do połączenia z Twoją sesją X - będzie to wymagało manipulacji przy xauth i / lub xhost, szczegóły bardzo zależą od Twojej dokładnej konfiguracji
Aby wyjaśnić ten problem bardziej szczegółowo: X11, którego gnome używa jako infrastruktury, pozwala na scenariusze takie jak „wiele niezależnych sesji, które mogą mieć różne konta użytkowników zalogowanych, przełączanych za pomocą klawiszy funkcyjnych lub podłączonych do różnych monitorów i myszy / klawiatur „(„ Multiseat ”) i„ rzeczywista sesja działa na innym komputerze niż ta, do której podłączony jest monitor i urządzenia HID ”(„ XDMCP ”jest tutaj słowem kluczowym). „Jedna sesja, jeden użytkownik” to tak naprawdę tylko jeden możliwy przypadek użycia i jedyny, w którym polecenie zakłócające cokolwiek w takiej sesji bez bycia jego częścią, mogłoby wiedzieć, jak prawidłowo zareagować - ale nie ma specjalnych przepisów wbudowanych w tym przypadku.