gsettings更改不适用于ssh

时间:2015-05-15 09:37:14

标签: ssh gsettings

我正在尝试使用ssh中的idle timeoutUbuntu 14.04设置gsettings

我正在使用的命令就像这样

dbus-launch gsettings set org.gnome.desktop.session idle-delay 600

dbus-launch gsettings set org.gnome.desktop.screensaver lock-delay 0

dbus-launch gsettings set org.gnome.desktop.screensaver lock-enabled true

dbus-launch gsettings set org.gnome.desktop.screensaver idle-activation-enabled true

在执行各种timeout个句点的命令后,正在进行更改,但重启或注销后这些超时更改会丢失。

这是否可以在重新启动/注销时使超时更改持久。

2 个答案:

答案 0 :(得分:1)

基本上,当您使用dbus-launch启动新的dbus实例时,您将通过启动新的dbus将配置保存到错误的位置。将dbus-launch添加到gsettings调用的开头会删除所有错误消息,但您不会保存更改。

目标用户存在现有的dbus进程,并且通过ssh,终端无法接收正确的环境变量来解决它。

通过ssh编辑gsettings的正确方法是首先识别现有dbus进程的DBUS_SESSION_BUS_ADDRESS并将其设置为环境变量。因此:

PID=$(pgrep gnome-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ)
# And now:
gsettings set org.gnome.desktop.session idle-delay 600

答案 1 :(得分:0)

Ubuntu 18.04 上,您不仅需要设置DBUS_SESSION_BUS_ADDRESS,还需要设置XDG_RUNTIME_DIR。您可以使用以下命令执行此操作(将121替换为UID,将gdm替换为用户):

su gdm -s /bin/bash -c 'XDG_RUNTIME_DIR=/run/user/121 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/121/bus gsettings get org.gnome.desktop.session idle-delay'
相关问题