我正在通过shell终端使用我的笔记本电脑登录学校的服务器来运行 Matlab会话。会议将需要大约10个小时,我想关闭我的 笔记本电脑,回家,吃饭,并重新搞shell终端检查 我的Matlab会议的进展。
来自this link我知道我应该使用nohup nohup
来保持我的终端活着,
但我遇到了以下问题。这是我开始后我的shell的截图
运行Matlab会话:
其中a = cv000_29590
是来自Matlab的回复。它应该继续运行
直到cv999999
,大约需要10个小时。
问题是,这个shell不再是交互式的。我不能再进入了
命令,也就是说,我无法输入nohup
来保持我的SSH
会议活着。
答案 0 :(得分:0)
在你已经开始一个会话后,这是不可能的。但是对于新会话,您可以执行以下操作:
将以下内容添加到.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}
}
将以下内容放入.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
来转到行的开头。< / p>
使用CTRL-b c
在新窗口中创建shell(或者只在bash提示符下键入new
以使用该功能)。并使用CTRL-b d
分离您的会话并使其保持运行。下次登录时,您将重新连接到您的会话,一切都将按原样进行。使用CTRL-b n
在您创建的窗口中循环。如果您不想使用多个窗口,则不必使用,只需使用能够让会话保持运行并稍后重新连接。