use*_*118 10 ssh opensuse kde tcsh d-bus
我在 KDE 下工作的工作站上运行 openSUSE 11.3,但我没有 root 访问权限。默认外壳已设置为tcsh. 当我登录到我的工作站并从运行 OS X 10.6 的 MacBook 使用 远程登录时ssh,如下所示:
ssh -X -C user@workstation.edu
Run Code Online (Sandbox Code Playgroud)
一切正常;然而,一旦我完成,每当我尝试使用 GUI 启动任何东西时,我的工作站会话中都会出现 DBUS 错误,不幸的是,包括任务栏面板中的注销对话框。startkde在这些情况下,我已经厌倦了为了退出而杀人。
在网上我找到了很多关于使用 ssh 连接到现有 dbus 会话的说明,但我想做相反的事情,让现有的 dbus 会话完全不受 ssh 远程登录会话的影响。
如果我做
ssh -X -C user@workstation.edu dbus-launch konsole
Run Code Online (Sandbox Code Playgroud)
这是有效的,所以只有交互式登录 shell 破坏了 dbus。我应该如何修改~/.cshrc?请记住,我没有权限修改/etc/cshrc,/etc/login等等。
如有必要,我可以在此处列出这些文件的内容。
更新:
这是一个包含我能找到的所有脚本的大 tar 文件:
实际上 dbus 会话是针对每台机器和每台 X 显示器的。
当您进行远程 SSH 会话时,您使用不同的 X11 显示(通常为 localhost:10)
如果您杀死所有 dbus 并在 SSH 会话上启动它,它就可以工作......对于 SSH 会话。但显然它会破坏机器中的所有其他 dbus 会话。
需要的是检查机器+显示器的会话是否已经存在,如果是,则使用它,如果不存在,则为该组合启动一个新的 dbus,并让会话知道它。
查看https://unix.stackexchange.com/a/188877/32769 的 bash 块,您可以将其放入 $HOME/.bash_profile 文件中来执行这些测试并正确执行正确的操作。