【问题标题】:When Matlab crashes, X11 connection breaks on Mac OS当 Matlab 崩溃时,Mac OS 上的 X11 连接中断
【发布时间】:2013-10-07 20:31:27
【问题描述】:

我在 linux 机器上远程使用 MATLAB (2013a)。 我正在使用ssh -X(OpenSSH_5.9p1,OpenSSL 0.9.8y 2013 年 2 月 5 日)通过 ssh 转发 X11。 X11 服务器是 Mac OS 10.8.5 上的 XQuartz 2.7.4 (xorg-server 1.13.0)。

当我的 MATLAB 崩溃时,它会以某种方式终止 X11 连接,我需要通过 ssh 重新连接以重新建立新的 X11,否则 MATLAB 会拒绝启动。 X11 应用程序做这样的事情是否正常?有没有办法在不通过 ssh 重新连接的情况下修复 X11?

当我没有启动画面 (-nosplash)、没有 gui、没有编辑器、也没有绘图时,就会发生这种情况。

编辑:我在tmux(或有时screen)内的shell(bash)上运行MATLAB。

【问题讨论】:

  • 您是通过ssh 命令启动MATLAB 还是在获得shell 后手动启动?
  • 好问题,我一直有这个问题,从来没有想过提出一个问题来试图解决这个问题。
  • @Werner 当您的终端出现问题时,您可以随时尝试reset 和/或stty sane。 :)
  • 为了测试目的,有办法让 Matlab 崩溃可能会很方便。 @Amro 在回答这个问题时找到了一些东西:stackoverflow.com/questions/16342688/…
  • 哇,你真的可以只用S = struct(); S = setfield(S, {}, 'g', {}, 0) 让 MATLAB 崩溃!对于像我们这样疯狂的人来说,这是个好建议。

标签: matlab x11-forwarding


【解决方案1】:

您需要正确设置 DISPLAY 变量才能使 X11 转发正常工作——ssh -Xssh -Y 应该为您做一些事情。崩溃前后DISPLAY 的值是多少(echo $DISPLAY)?它应该类似于localhost:10.0。我想知道变量是否搞砸了并没有干净地退出。

另外,try using -Y instead of -X 看看这是否有什么不同。如果这没有帮助,请尝试在/etc/ssh/ssh_config 中添加ForwardX11Trusted yes

【讨论】:

  • DISPLAY 仍然是 localhost:10.0
  • 哦,好吧。这就是我在带有 Cygwin 的 X Window 服务器的 Linux 上使用 MATLAB 时经常出错的原因。
  • 是的。实际上-Y 开关使它更加稳定。让我再测试一下并接受你的答案。
【解决方案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 之前尝试在后台运行另一个进程

reportedbefore MATLAB 在返回时有时可以mess up the bash shell。 MathWorks 建议使用不同的 shell(如 tcsh 或 zsh)。

【讨论】:

    猜你喜欢
    • 2019-01-17
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-12
    • 1970-01-01
    相关资源
    最近更新 更多