通过X转发连接到远程Emacs

时间:2015-01-22 22:21:18

标签: emacs ssh emacs24

我的桌面始终在运行Emacs打开时运行。我想在工作时远程连接到我的计算机上的进程,并且能够使用ssh和emacsclient进行连接。但是我不能干净地退出而不会导致原始进程崩溃。我正在执行以下操作以连接到服务器名称为'foo'的emacs框架:

$ ssh -XC ej@tower

$ emacsclient -s foo -e "(make-frame-on-display \"$DISPLAY\")"

这是有效的,但我找不到任何方法来杀死ssh连接而不会崩溃原始进程。似乎某些后台进程仍然连接,并且杀死它(在杀死远程连接后发生)会导致一切。有没有人知道更好的方法来做这个或某种方式?

2 个答案:

答案 0 :(得分:1)

我知道你在谈论什么,而且奇怪的是我无法在我当前的系统上重新创建它。我不知道为什么会这样。然而...

避免这种情况的经典解决方法是在子shell中启动进程:

$ (emacs &)

而不是:

$ emacs &

还有nohupdisown之类的内容,您可能会或可能没有这些内容,但子shell方法很简单,对我来说一直都很可靠。

您也可以从连接的本地端启动进程:

$ ssh -XC ej@tower -f emacs --daemon=foo
$ ssh -XC ej@tower -f emacsclient -s foo -c

答案 1 :(得分:1)

我遇到的问题源自a Gtk+ bug,当X11连接意外丢失时,导致Emacs崩溃。

重新编译以使用不同的X工具包解决了这个问题。

./configure --with-x-toolkit=lucid