这是我的情况:我通常R在Emacs使用ESS终端模拟器,在我的本地电脑中运行.在我的工作场所,我们运行一个新的服务器,R所以我将使用远程服务器ssh.我连接通过ssh,一切正常.我要做的是R在我关闭笔记本电脑并回家的同时保持控制台的存活,这样,从我的家里我将重新连接到现有的R会话.我尝试将R控制台放在后台使用C-q C-z Enter来停止进程但是,当我关闭ssh连接时,进程被终止.没有运气bg &也没用.我也尝试了,mosh但在这种情况下,我得到了一些与我工作网络中的UDP流量相关的问题.Screen并且tmux由于与他们的不良互动而不是非常有用Emacs eshell.在客户端和服务器机器上,我运行Debian 8 xfce.
是否有办法在关闭ssh连接时保持R终端的活动状态?你对长期会议的态度是什么?
编辑
终于来了,我在这里找到了我正在寻找的解决方案.我尝试了与上面链接相同的方法,但是使用tmux,我得到了很多错误.圣杯是屏幕.我尝试按照一步一步的步骤进行操作,但是当我尝试从eshell中附加一个屏幕会话时,我从emacs收到错误.所以我尝试使用ansi-term而不是eshell,并且所有工作都按预期工作.我可以附加和分离R会话.通过这种方式,我只使用远程服务器机器进行计算,而R脚本在我的笔记本电脑中.所以,这是工作流程:
ssh 到主机服务器screen会议Rscreenemacs在本地计算机上作为守护程序运行并打开一个emacsclient
实例(不必通过emacsclient运行emacs但我更喜欢这种方式)R脚本ansi-term(M-x ansi-term)ssh 从服务器到 ansi-termscreen -r)R控制台连接到本地R脚本(M-x ess-remote)Ctrl-q Ctrl-a d return而已.现在我可以R使用本地R脚本运行远程进程,关闭连接但是打开R控制台以便将来可以从不同的IP重新连接到它.
这是我最喜欢的主题之一:)这是我做的:
emacs --daemon以便它在后台运行.emacsclient -nw(用于文本模式)或emacsclient -c(在x11 /图形模式下)以在后台访问守护进程的emacs.我有这些别名emt和emx.现在你基本上完成了.你可以ssh从那个盒子中继续,然后从你可以启动的ssh那里继续 - 可以是智能手机或浏览器.当然,ESS允许您拥有多个R会话.之后M-x R我经常援引M-x rename-buffer对齐与项目名称或想法,我的工作的缓冲区.
我将这两者结合起来
byobu(这是一个花哨的tmux包装器,可以在许多发行版和OS X上使用,最初来自Ubuntu)使shell会话持续存在mosh 对于工作和家庭等我的笔记本电脑可以简单恢复的地方严格来说你不是需要byobu或mosh为emacs坚持(如运行进程需要照顾的是),但你可能想为所有其他shell会话.
这种设置多年来一直是我工作和家庭的转到工具.
| 归档时间: |
|
| 查看次数: |
469 次 |
| 最近记录: |