当Matlab崩溃时,Mac OS上的X11连接中断

时间:2013-10-01 15:32:45

标签: matlab x11-forwarding

我在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。

2 个答案:

答案 0 :(得分:3)

您需要正确设置DISPLAY变量才能使X11转发正常工作 - ssh -Xssh -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转发时也会发生这种情况?

  • 使用nohup或screen / tmux时是否会发生这种情况?请参阅this

  • 尝试将TCPKeepAlive添加到您的ssh配置

  • 如何使用自动重新连接SSH连接

  • 您使用的是自定义SSH配置吗? (如果是,则显示ssh_configsshd_config文件中的相关部分)

  • 尝试在启动MATLAB

  • 之前在后台运行另一个进程

MATLAB有时reported before返回时有mess up the bash shell {{3}}。 MathWorks建议使用不同的shell(如tcsh或zsh)。