Наиболее вероятное объяснение состоит в том, что команда gnome-screensaver-command при запуске в контексте, который предоставляет udev, не знает, чья заставка на каком дисплее она должна командовать - она не работает под вашей учетной записью пользователя и не имеет среды переменные, которые распространяются на протяжении всего сеанса пользователя X
Подход, который, вероятно, может быть реализован:
- запустите команду gnome-screensaver-command под пользователем su
- убедитесь, что для переменной среды DISPLAY установлено то же значение, что и для терминала в сеансе X
- убедитесь, что права доступа к вашему сеансу X установлены - это потребует некоторых действий с xauth и / или xhost, детали очень зависят от вашей точной настройки
Чтобы объяснить проблему более подробно: X11, который gnome использует в качестве своей инфраструктуры, допускает такие сценарии, как «несколько независимых сеансов, которые могут быть все с разными учетными записями пользователей, подключенными с помощью функциональных клавиш или подключенными к разным мониторам и мышам / клавиатурам». «(« Multiseat ») и« фактический сеанс работает на другом компьютере, чем тот, к которому подключены монитор и устройства HID »(здесь ключевое слово« XDMCP »). «Один сеанс, один пользователь» на самом деле является лишь одним из возможных вариантов использования, и единственный, в котором команда, вмешивающаяся во что-либо в таком сеансе и не являющаяся его частью, может знать, как правильно реагировать, но в нее не встроены специальные положения. для этого случая.