Когда происходит сбой Matlab, разрывается соединение X11 в Mac OS

Я использую MATLAB (2013a) на Linux-машине удаленно. Я пересылаю X11 через ssh, используя ssh -X (OpenSSH_5.9p1, OpenSSL 0.9.8y 5 февраля 2013 г.). Сервер X11 - это XQuartz 2.7.4 (xorg-server 1.13.0) в Mac OS 10.8.5.

Когда мой MATLAB дает сбой, он каким-то образом убивает соединение X11, и мне нужно повторно подключиться через ssh, чтобы восстановить новый X11, иначе MATLAB отказывается запускаться. Это нормально для приложения X11, чтобы делать такие вещи? Есть ли способ исправить X11 без повторного подключения через ssh?

Это происходит, когда у меня нет всплеска (-nosplash), нет графического интерфейса, нет редактора, нет графиков, а также.

РЕДАКТИРОВАТЬ: я запускаю MATLAB над оболочкой (bash) внутри tmux (или иногда screen).

2 ответа

Решение

Вам нужно иметь DISPLAY переменная установлена ​​правильно для корректной работы пересылки X11 - что-то ssh -X или же ssh -Y должен сделать для вас. Какова стоимость DISPLAY до и после аварии (echo $DISPLAY)? Это должно быть что-то вроде localhost:10.0, Я задаюсь вопросом, если переменная запутывается, не выходит чисто.

Кроме того, попробуйте использовать -Y вместо -X чтобы увидеть, если это имеет какое-либо значение. Если это не поможет, попробуйте добавить ForwardX11Trusted yes в /etc/ssh/ssh_config,

Было бы полезно показать полную последовательность команд, которые вы используете для инициирования соединения и запуска 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, а затем в интерактивном режиме запустить команду из выделенной оболочки)?

  • Если я правильно понял, это также происходит, когда не используется пересылка X11?

  • это происходит при использовании nohup или screen/tmux? Смотрите это

  • попробуйте добавить TCPKeepAlive к вашей конфигурации SSH

  • как насчет использования автоматического переподключения соединений SSH

  • Вы используете какие-либо пользовательские конфигурации SSH? (если это так, показать соответствующие части из ssh_config а также sshd_config файлы)

  • попробуйте запустить другой процесс в фоновом режиме перед запуском MATLAB

Ранее сообщалось, что MATLAB может иногда испортить оболочку bash при возврате. MathWorks рекомендует использовать другую оболочку (например, tcsh или zsh).

Другие вопросы по тегам