【问题标题】:gsettings changes are not working over sshgsettings 更改不适用于 ssh
【发布时间】:2019-10-03 23:38:20
【问题描述】:

我正在尝试使用来自 ssh 的 gsettingsUbuntu 14.04 设置 idle timeout

我使用的命令是这样的

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 周期执行命令后,更改正在发生,但这些超时更改在重新启动或注销后会丢失。

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

【问题讨论】:

    标签: ssh gsettings


    【解决方案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
    

    【讨论】:

      【解决方案2】:

      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'
      

      【讨论】:

        猜你喜欢
        • 2012-04-16
        • 2017-12-20
        • 1970-01-01
        • 1970-01-01
        • 2013-04-11
        • 2013-04-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多