繁体   English   中英

断开连接后保持 SSH 会话运行

[英]Keep SSH Sessions running after disconnection

我正在通过 shell 终端使用我的笔记本电脑登录学校的服务器以运行 Matlab 会话。 会话将需要大约 10 个小时,我想关闭我的笔记本电脑,回家,吃晚饭,然后重新使用 shell 终端来检查我的 Matlab 会话的进度。

这个链接我知道我应该使用 nohup nohup来保持我的终端处于活动状态,但我遇到了以下问题。 这是我开始运行 Matlab 会话后我的 shell 的屏幕截图:

我的 matlab 会话

其中a = cv000_29590是来自 Matlab 的响应。 它应该一直运行到cv999999并需要大约 10 个小时。

问题是,这个外壳不再是交互式的。 我不能再输入命令,也就是说,我没有地方输入nohup指令来保持我的 SSH 会话处于活动状态。

在您已经开始会话之后,这是不可能的。 但是对于新会话,您可以执行以下操作:

  1. 将以下内容添加到.bash_profile的顶部:

     if [ -z "${PS1}" ] ; then return fi if [ "${TERM}" != "screen" ] ; then export HOSTNAME exec screen -xRR fi function new { u=${1:-$USER} test ${u} = ${USER} && screen -t ${u}@${HOSTNAME} || screen -t ${u}@${HOSTNAME} su --login ${u} }
  2. 将以下内容放入.screenrc

     escape ^bb shell -$SHELL termcapinfo xterm ti@:te@ hardstatus lastline "%-Lw[%n%f %t]%+Lw%<" screen -t ${USER}@${HOSTNAME}

    这些主要是我自己定制的屏幕。 其中最重要的是我将屏幕转义字符设置为CTRL-b而不是默认的CTRL-a因此我仍然可以在 bash 中使用CTRL-a转到行的开头。

  3. 使用CTRL-b c在新窗口中创建 shell(或在 bash 提示符下键入new以使用该功能)。 并使用CTRL-b d分离您的会话并让它继续运行。 下次登录时,您将重新连接到您的会话,一切都将保持原样。 使用CTRL-b n循环浏览您创建的窗口。 如果您不想使用多个窗口,则不必这样做,只需使用让会话保持运行并稍后重新连接的功能即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM