我的桌面始终在运行Emacs打开时运行。我想在工作时远程连接到我的计算机上的进程,并且能够使用ssh和emacsclient进行连接。但是我不能干净地退出而不会导致原始进程崩溃。我正在执行以下操作以连接到服务器名称为'foo'的emacs框架:
$ ssh -XC ej@tower
$ emacsclient -s foo -e "(make-frame-on-display \"$DISPLAY\")"
这是有效的,但我找不到任何方法来杀死ssh连接而不会崩溃原始进程。似乎某些后台进程仍然连接,并且杀死它(在杀死远程连接后发生)会导致一切。有没有人知道更好的方法来做这个或某种方式?
答案 0 :(得分:1)
我知道你在谈论什么,而且奇怪的是我无法在我当前的系统上重新创建它。我不知道为什么会这样。然而...
避免这种情况的经典解决方法是在子shell中启动进程:
$ (emacs &)
而不是:
$ emacs &
还有nohup
和disown
之类的内容,您可能会或可能没有这些内容,但子shell方法很简单,对我来说一直都很可靠。
您也可以从连接的本地端启动进程:
$ ssh -XC ej@tower -f emacs --daemon=foo
$ ssh -XC ej@tower -f emacsclient -s foo -c
答案 1 :(得分:1)