Я поместил ForwardX11
в мой ~/.ssh/config
а затем я запускаю приложение X11 следующим образом:
ssh -f user@host 'someapp; sleep 1'
Это отлично работает.
В приложении someapp
есть кнопка, которая открывает приложение просмотра через сценарий оболочки viewer.sh
. Когда я нажимаю кнопку, зритель появляется.
Это все хорошо и как ожидалось, но если я сделаю
ssh -2 -f user@host 'someapp; sleep 1'
есть проблема
someapp
запускается очень хорошо, но если я нажму кнопку, зритель не появится.
Поскольку зритель вызывается с помощью сценария оболочки, я заменил вызов на xclock
и ситуация была точно такой же - я думаю, что зритель не виноват.
Ситуация одинаковая на Linux и AIX.
Причина, по которой мне нужно -2
заключается в том, что я, наконец, хочу использовать мультиплексирование соединений, и это работает только с версией 2. Причина sleep 1
том, что иначе не получилось ;-)
Чтобы добавить больше путаницы, с
ssh -2 -f user@host 'xterm &; app; sleep 1'
зритель работает, пока открыт xterm.
Когда я закрываю xterm ssh -v
выводит следующее
debug1: channel 1: FORCE input drain
debug1: channel 0: free: client-session, nchannels 3
debug1: channel 1: free: x11, nchannels 2
и с этого момента зритель не показывает, когда я нажимаю кнопку.
Я также заменил приложение Viewer на скрипт, который записывает переменную $DISPLAY
в файл. Переменная всегда установлена правильно.