我正在尝试使用ssh中的gsettings为Ubuntu 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周期执行命令后,更改正在发生,但这些超时更改在重新启动或注销后会丢失。
这是否可以使超时更改在重新启动/注销时保持不变。
发布于 2017-12-02 06:16:36
基本上,当您使用dbus-launch启动一个新的dbus实例时,您通过启动一个新的dbus将配置保存到了错误的位置。虽然在gsettings调用的开头添加dbus-launch将删除任何错误消息,但您不会保存更改。
对于目标用户,存在一个现有的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发布于 2019-10-03 23:28:44
在Ubuntu18.04上,你不仅要设置DBUS_SESSION_BUS_ADDRESS,还要设置XDG_RUNTIME_DIR。您可以使用以下命令执行此操作(将121替换为UID,将gdm替换为user):
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'https://stackoverflow.com/questions/30256153
复制相似问题