使用 X 转发连接到远程 Emacs
Connecting to remote Emacs with X forwarding
我有一个桌面总是 运行 在工作时打开 Emacs。我想在工作时远程连接到我的计算机上的进程,并且能够使用 ssh 和 emacsclient 做到这一点。但是我无法在不导致原始进程崩溃的情况下干净地退出。我正在执行以下操作以连接到服务器名称为 'foo':
的 emacs 框架
$ ssh -XC ej@tower
$ emacsclient -s foo -e "(make-frame-on-display \"$DISPLAY\")"
这行得通,但是我找不到任何方法在不破坏原始进程的情况下终止 ssh 连接。似乎某些后台进程仍处于连接状态,并且将其终止(在终止远程连接后发生)会导致一切中断。有谁知道更好的方法或方法吗?
我知道你在说什么,奇怪的是我无法在我当前的系统上重新创建它。我不确定为什么会这样。然而...
避免这种情况的经典解决方法是在子 shell:
中启动进程
$ (emacs &)
而不是:
$ emacs &
还有 nohup
和 disown
之类的东西,您可能有也可能没有,但是 sub-shell 方法很简单,对我来说一直很可靠。
您也可以从连接的本地端启动进程:
$ ssh -XC ej@tower -f emacs --daemon=foo
$ ssh -XC ej@tower -f emacsclient -s foo -c
我 运行 遇到的问题源于 a Gtk+ bug,它导致 Emacs 在 X11 连接意外丢失时崩溃。
重新编译以使用不同的 X 工具包解决了这个问题。
./configure --with-x-toolkit=lucid
我有一个桌面总是 运行 在工作时打开 Emacs。我想在工作时远程连接到我的计算机上的进程,并且能够使用 ssh 和 emacsclient 做到这一点。但是我无法在不导致原始进程崩溃的情况下干净地退出。我正在执行以下操作以连接到服务器名称为 'foo':
的 emacs 框架$ ssh -XC ej@tower
$ emacsclient -s foo -e "(make-frame-on-display \"$DISPLAY\")"
这行得通,但是我找不到任何方法在不破坏原始进程的情况下终止 ssh 连接。似乎某些后台进程仍处于连接状态,并且将其终止(在终止远程连接后发生)会导致一切中断。有谁知道更好的方法或方法吗?
我知道你在说什么,奇怪的是我无法在我当前的系统上重新创建它。我不确定为什么会这样。然而...
避免这种情况的经典解决方法是在子 shell:
中启动进程$ (emacs &)
而不是:
$ emacs &
还有 nohup
和 disown
之类的东西,您可能有也可能没有,但是 sub-shell 方法很简单,对我来说一直很可靠。
您也可以从连接的本地端启动进程:
$ ssh -XC ej@tower -f emacs --daemon=foo
$ ssh -XC ej@tower -f emacsclient -s foo -c
我 运行 遇到的问题源于 a Gtk+ bug,它导致 Emacs 在 X11 连接意外丢失时崩溃。
重新编译以使用不同的 X 工具包解决了这个问题。
./configure --with-x-toolkit=lucid