#ssh #tcl #tk
#ssh #tcl #tk
Вопрос:
У меня есть полноэкранное приложение Tk GUI, запущенное на виртуальной машине.
Я знаю, что могу "Attach to ... Interpreter"
перейти из Tkcon в графический интерфейс внутри виртуальной машины.
К сожалению, поскольку приложение всегда работает в полноэкранном режиме, диалоговое окно tkcon скрыто за ним.
Я понимаю, я могу использовать ALT - TAB
для переключения между tkcon и полноэкранным графическим интерфейсом. Это работает до тех пор, пока вы в порядке с регулярным переключением туда и обратно.
Вопрос:
Только мне было интересно, можно ли запустить tkcon на 2-м мониторе (например, на хосте Windows или Linux) и подключиться по ssh к графическому интерфейсу, работающему на виртуальной машине. Я вижу, что у tkcon есть "Attach to ... socket"
опция.
Что я пробовал:
Я думал, что смогу,
- запустите Putty.
- Подключитесь к виртуальной машине через ssh с включенной X-переадресацией.
- Запустите tkcon в виртуальной машине с терминала Putty.
- И подключитесь к графическому интерфейсу, запущенному на виртуальной машине.— за исключением того, что этот последний шаг не работает. Я не вижу список «обнаруженных» интерпретаторов в tkcon ниже
Attach to ... Interpreters
.
Что также заставляет меня задуматься, как tkcon «обнаруживает» интерпретаторы на виртуальной машине.
Спасибо за ваше время и помощь.
Комментарии:
1. Просто небольшое продолжение (я не был уверен, стоит ли мне редактировать свой пост или добавлять комментарий здесь), на случай, если однажды я снова вернусь к этому вопросу. Сегодня я попробовал кое-что, о чем не знаю, почему, я раньше не думал. Вместо того, чтобы запускать полноэкранное приложение с графическим интерфейсом внутри виртуальной машины, я запустил его с терминала хоста, откуда я вошел в виртуальную машину по ssh. Я удивлен, что приложение работало без ошибок. Полноэкранный интерпретатор GUI-приложений теперь виден как для tkcon виртуальной машины, запущенной через ssh, так и для tkcon на хосте. Я могу подключиться с любого из них к графическому интерфейсу.
2. Я даже могу перевести виртуальную машину в безголовый режим и полностью работать на хосте.
:)
Но в любом случае было приятно узнать о tkconclient из ответа Донала Феллоу.
Ответ №1:
У Tkcon есть два реальных варианта подключения к другому интерпретатору:
- Встроенная
send
команда Tk, которая работает через свойства Xserver и немного сложна для включения функций. Это может напрямую взаимодействовать с любым другим Tk на том же Xserver. Использование SSH для обеспечения безопасности будет заключаться в использовании обычных туннелей удаленного доступа X11. tkconclient
Пакет (исходный код см. На этой вики-странице), который вы запускаете в интерпретаторе, которым хотите управлять. Затем вы подключаетесь к нему с помощью tkcon (хотя вам нужно знать, к какому порту подключаться). Для этого вам нужно настроить обычный SSH-туннель; по умолчанию он разрешает только локальные подключения (и это хорошо).
Обратите внимание, что в клиентском коде должен выполняться цикл событий. Это не проблема для любого приложения с графическим интерфейсом, для всего, что отвечает на другие сокеты сервера, или, на самом деле, обычно для всего, что выполняет много управления потоками. Который охватывает наиболее интересные приложения.
Комментарии:
1. Спасибо за ответ, Донал Феллоуз. Я пробую ваши предложения, а затем возвращаюсь сюда. Еще раз спасибо. Очень признателен.
2. Извините за поздний отзыв. Праздники
¯_(ツ)_/¯
! Я только что протестировал и выбрал ваше второе решение. По крайней мере, я частично успешно. Действительно, tkcon на хосте может подключаться к интерпретатору на хосте. Мне просто нужно выяснить, где лучше всего разместить этот скрипт tkconclient в виртуальной машине.3. … может подключаться к интерпретатору на хосте. —> Я имею в виду не гостя . Опечатка.