首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gsettings更改在ssh上不起作用

gsettings更改在ssh上不起作用
EN

Stack Overflow用户
提问于 2015-05-15 17:37:14
回答 2查看 1.8K关注 0票数 4

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

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

EN

回答 2

Stack Overflow用户

发布于 2017-12-02 06:16:36

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

对于目标用户,存在一个现有的dbus进程,并且通过ssh,您的终端不能接收用于寻址它的正确环境变量。

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

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2019-10-03 23:28:44

Ubuntu18.04上,你不仅要设置DBUS_SESSION_BUS_ADDRESS,还要设置XDG_RUNTIME_DIR。您可以使用以下命令执行此操作(将121替换为UID,将gdm替换为user):

代码语言:javascript
复制
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'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30256153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档