我正在尝试使用ssh中的idle timeout
为Ubuntu 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
个句点的命令后,正在进行更改,但重启或注销后这些超时更改会丢失。
这是否可以在重新启动/注销时使超时更改持久。
答案 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'