我在Linux机器上远程使用MATLAB(2013a)。
我使用ssh -X
通过ssh转发X11(OpenSSH_5.9p1,OpenSSL 0.9.8y 2013年2月5日)。
X11服务器是Mac OS 10.8.5上的XQuartz 2.7.4(xorg-server 1.13.0)。
当我的MATLAB崩溃时,它以某种方式杀死X11连接,我需要通过ssh重新连接以重新建立一个新的X11,否则MATLAB拒绝启动。 X11应用程序执行此类操作是正常的吗?有没有办法修复X11而无需通过ssh重新连接?
当我没有启动(-nosplash),没有gui,没有编辑器,也没有阴谋时会发生这种情况。
编辑:我在bash
(或有时tmux
)内的shell(screen
)上运行MATLAB。
答案 0 :(得分:3)
您需要正确设置DISPLAY
变量才能使X11转发正常工作 - ssh -X
或ssh -Y
应为您做的事情。崩溃之前和之后DISPLAY
的价值是多少echo $DISPLAY
?它应该是localhost:10.0
之类的东西。我想知道变量是否搞砸了并没有干净利落地退出。
另外,try using -Y
instead of -X
看看是否有任何区别。如果这样做无效,请尝试在ForwardX11Trusted yes
中添加/etc/ssh/ssh_config
。
答案 1 :(得分:2)
显示用于启动连接和启动MATLAB的完整命令序列以及任何错误消息将会很有帮助。例如:
# batch mode
client$ ssh -v -x user@server # small "x" disables X11 forwarding
server$ unset DISPLAY
server$ nohup matlab -nodesktop -nodisplay -noFigureWindows -nosplash \
-r "ver; quit;" > m_output.out 2>&1 < /dev/null &
# interactive mode
client$ export DISPLAY=localhost:0.0
client$ ssh -v -X user@server # enable X11 forwarding
server$ matlab
一些想法:
打开更详细的输出(ssh -vv
),并调查SSH连接关闭的原因(调试输出消息或任何日志文件)
您是直接从ssh
运行命令,还是分两步完成(使用ssh
连接,然后以交互方式从已分配的shell启动命令)?
如果我理解正确,那么在不使用X11转发时也会发生这种情况?
尝试将TCPKeepAlive
添加到您的ssh配置
如何使用自动重新连接SSH连接
您使用的是自定义SSH配置吗? (如果是,则显示ssh_config
和sshd_config
文件中的相关部分)
尝试在启动MATLAB
MATLAB有时reported before返回时有mess up the bash shell {{3}}。 MathWorks建议使用不同的shell(如tcsh或zsh)。