通过 ssh 获取 gvfs 元数据

t-b*_*ltg 6 ssh nautilus gvfs

我的 gvfs 守护进程有问题

我有一个安装的 gvfsd-fuse

$ mount | grep gvfs
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
Run Code Online (Sandbox Code Playgroud)

在 pc1 上(不使用 ssh)

$ gvfs-info -w $HOME
<...>
Writable attribute namespaces:
metadata (string, Copy with file, Keep with file when moved)
xattr (string, Copy with file, Keep with file when moved)
xattr-sys (string, Keep with file when moved)
Run Code Online (Sandbox Code Playgroud)

但是当我在这台机器上用 ssh 登录时

$ ssh -X user@pc1
$ gvfs-info -w $HOME
<...>
Writable attribute namespaces:
xattr (string, Copy with file, Keep with file when moved)
xattr-sys (string, Keep with file when moved)
Run Code Online (Sandbox Code Playgroud)

元数据部分丢失,当我使用通过ssh鹦鹉螺这是需要我改变了每个文件夹的设置(例如缩放或文件排序)。

$ ssh -X user@pc1
$ nautilus
=> changing the zoom level for example, then change folder, go back, the zoom setting is lost (reset to default)
this does not happen when I log physically on this machine.
Run Code Online (Sandbox Code Playgroud)

t-b*_*ltg 3

好的,几个小时后我找到了答案。

似乎没有为远程 ssh 会话启动 dbus 守护进程。

因此,使用现有的 DBUS_SESSION_BUS_ADDRESS 失败了,但我在这里找到了解决方案:

$ ssh -X user@pc1 "gnome-terminal -e 'dbus-launch --exit-with-session bash'"
$ nautilus
Run Code Online (Sandbox Code Playgroud)

我启动一个新的会话总线或在 X 显示器上找到现有的总线地址,以便应用程序可以与 gvfs 守护程序进行通信。