4

我在 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、没有编辑器、也没有绘图时,就会发生这种情况。

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

4

2 回答 2

4

您需要DISPLAY正确设置变量以使 X11 转发正常工作——ssh -X或者ssh -Y应该为您做些什么。DISPLAY崩溃前后 ( )的值是echo $DISPLAY多少?它应该是类似的东西localhost:10.0。我想知道变量是否被弄乱了并没有干净地退出。

另外,请尝试使用-Y而不是-X查看是否有任何不同。如果这没有帮助,请尝试添加ForwardX11Trusted yes./etc/ssh/ssh_config

于 2013-10-01T20:13:16.933 回答
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 时也会发生这种情况吗?看到这个

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

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

  • 您是否使用任何自定义 SSH 配置?(如果是这样,请显示ssh_configsshd_config文件中的相关部分)

  • 在启动 MATLAB 之前尝试在后台运行另一个进程

It's been reported before that MATLAB can sometimes mess up the bash shell when it returns. MathWorks recommended using a different shell instead (like tcsh or zsh).

于 2013-10-07T21:25:19.450 回答