断开连接后保持SSH会话运行-过夜使用

4
这是一个关于这个问题的后续提问。
我采纳了@Chris Lear的建议,使用了screen命令。它非常有效,可以在短时间内成功退出。但是我多次遇到以下问题。
当我按下ctrl+a、ctrl+d退出并进入睡眠状态后,在第二天早上恢复时,我一直收到以下错误消息,并且服务器上的matlab进程已死亡。
错误消息是:packet_write_wait: connection to 128.2.xx.xxx: Broken pipe.
有什么办法可以解决这个问题吗?
谢谢!

Matlab是否直接将数据发送回您的笔记本电脑?您是通过SSH连接到远程计算机,然后在那里运行Matlab,对吗? - Etan Reisner
是的。当我登录时,Matlab会直接将数据发送回我的笔记本电脑。 - JumpJump
当你第一次登录时,你执行的命令顺序是ssh、screen、matlab? - Christoph Sommer
只需重新登录服务器,然后调用 screen -d -r 即可。 - Markus W Mahlberg
2
@ChristophSommer 开启终端,屏幕,SSH,Matlab。注销使用 ctrl+a, ctrl+d,恢复使用 screen -r。 - JumpJump
1
@tankonetoone:屏幕应该可以工作。听起来你的问题是服务器上的Matlab正在回到你的笔记本电脑,然后你关闭了你的笔记本电脑。 - sashang
2个回答

3

在服务器上运行屏幕(与您现在所做的客户端相反)。这样,即使您未通过ssh连接到服务器,MATLAB也可以编写输出。此命令的顺序是ssh,screen,matlab。如果您想恢复会话,只需通过ssh连接到服务器,然后运行类似于screen-x的命令。


好主意!我会试一试。 - JumpJump

0
在您的(客户端)计算机上打开/etc/ssh/ssh_config文件。添加以下行:
ServerAliveInterval 100
ServerAliveCountMax 3  (default)

您还可以在~/.ssh/config中设置这些值的每个用户级别。

请记住,如果您意外地保持ssh会话处于打开状态,任何其他具有访问权限的人都可以进入它。完成后请记得关闭会话。


我的终端显示:权限被拒绝... - JumpJump
1
只要您使用的是 openSSH,您使用 Mac 或 PC 都无所谓。您需要 root 访问权限来设置系统范围内默认的 /etc/ssh/ssh_config 值,仅针对自己使用 ~/.ssh/config。(如果您的每个用户 .ssh 目录存储在 Mac 上,则应将它们设置在该位置;否则,请将它们设置在其他位置。) - David C. Rankin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接