4

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

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

4

2 回答 2

2

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

目标用户存在一个现有的 dbus 进程,并且通过 ssh,您的终端没有收到用于解决它的正确环境变量。

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

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
于 2017-12-01T22:16:36.107 回答
1

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'
于 2019-10-03T15:28:44.410 回答