gsettings 无法通过 ssh 工作

Ser*_*gey 14 ssh gsettings

我正在尝试使用以下命令更改远程计算机上的 Unity Launcher 图标:

gsettings set com.canonical.Unity.Launcher favorites ...
Run Code Online (Sandbox Code Playgroud)

它完美地工作

但是当我这样做时

ssh 127.0.0.1
gsettings set com.canonical.Unity.Launcher favorites ...
Run Code Online (Sandbox Code Playgroud)

我明白了:

    (process:9616): dconf-WARNING **: failed to commit changes to dconf: Error spawning 
command line `dbus-launch --autolaunch=aaa5bb6eaa7cd50f2af1f10000000004 --binary-syntax 
--close-stderr': Child process exited with code 1
Run Code Online (Sandbox Code Playgroud)

这适用于来自 ssh 的任何 gsettings 调用。
问题出在哪儿?

mfi*_*sch 24

我认为 dbus 没有在远程 ssh 会话中运行。您需要自己启动它,但这很容易做到:

dbus-launch gsettings set com.canonical.Unity.Launcher favorites ...
Run Code Online (Sandbox Code Playgroud)

还要确保用户是正确的,您可以为另一个用户设置设置(如果这是您正在做的),如下所示:

sudo -u other dbus-launch gsettings set com.canonical.Unity.Launcher favorites ...
Run Code Online (Sandbox Code Playgroud)

以上假设您正在更改设置的用户是“其他”,请酌情更改。

  • 在 Ubuntu 16.04 中,此解决方案不会跨会话持续存在,即我注销用户并重新登录,我设置的值已恢复。我个人试图修改`gsettings set org.gnome.desktop.session idle-delay 10`。对我有用的唯一解决方案是 https://askubuntu.com/a/743024/358498 (2认同)