Когда происходит сбой 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).