后台R控制台和长时间运行会话

Ric*_*rdo 5 emacs ssh r

这是我的情况:我通常REmacs使用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脚本在我的笔记本电脑中.所以,这是工作流程:

  1. ssh 到主机服务器
  2. 开始screen会议
  3. 开始 R
  4. 分离 screen
  5. 从关闭ssh连接的服务器退出
  6. emacs在本地计算机上作为守护程序运行并打开一个emacsclient 实例(不必通过emacsclient运行emacs但我更喜欢这种方式)
  7. 打开你的R脚本
  8. 打开一个ansi-term(M-x ansi-term)
  9. ssh 从服务器到 ansi-term
  10. 附上屏幕会话(screen -r)
  11. 将远程R控制台连接到本地R脚本(M-x ess-remote)
  12. 从ans术语使用中脱离R Ctrl-q Ctrl-a d return

而已.现在我可以R使用本地R脚本运行远程进程,关闭连接但是打开R控制台以便将来可以从不同的IP重新连接到它.

Dir*_*tel 5

这是我最喜欢的主题之一:)这是我做的:

  • 始终启动emacs,emacs --daemon以便它在后台运行.
  • 始终启动emacsclient -nw(用于文本模式)或emacsclient -c(在x11 /图形模式下)以在后台访问守护进程的emacs.我有这些别名emtemx.

现在你基本上完成了.你可以ssh从那个盒子中继续,然后从你可以启动的ssh那里继续 - 可以是智能手机或浏览器.当然,ESS允许您拥有多个R会话.之后M-x R我经常援引M-x rename-buffer对齐与项目名称或想法,我的工作的缓冲区.

我将这两者结合起来

  • byobu(这是一个花哨的tmux包装器,可以在许多发行版和OS X上使用,最初来自Ubuntu)使shell会话持续存在
  • mosh 对于工作和家庭等我的笔记本电脑可以简单恢复的地方

严格来说你不是需要byobumoshemacs坚持(如运行进程需要照顾的是),但你可能想为所有其他shell会话.

这种设置多年来一直是我工作和家庭的转到工具.