Чи можна завершити сеанс SSH, щоб виглядати як окремий додаток?


2

Fluid може створити .app обгортку навколо екземпляра веб-сайту, щоб перетворити будь-яку веб-сторінку в програму OSX. Цей сценарій може виконати менш ретельну роботу з Chrome. Чи може щось зробити це для сеансу ssh, можливо, через термінал або профіль iTerm2 або окремий клієнт SSH?

Розробити:

Я відкриваю Safari, потім відкриваю друге вікно Safari для певного веб-сайту. Тепер cmd + вкладка та примусовий вихід із керування місією та док-станція та багато інших функцій OSX трактують ці два вікна як частину одного додатка.

Натомість, відкривши Safari, я можу відкрити створений для Fluid користувальницький .app для конкретного веб-сайту. Це дає мені всі властивості ОС, що мають два окремі програми.

Аналогічно, в Terminal або iTerm2 або окремому клієнті SSH (наприклад, CyberDuck або SecureCRT) я можу відкрити друге вікно із завантаженим профілем, який буде сша на певний сервер. Це вікно, знову ж таки, буде розглядатися ОС як частина єдиного запущеного додатка.

Я сподіваюся на щось на зразок Fluid, що створить .app обгортку навколо будь-якого методу відкриття сеансу SSH на певному сервері, який потім буде самостійно від будь-якого іншого SSHing, який я роблю в звичайному режимі.

Відповіді:


1

Єдиний спосіб запустити кілька окремих екземплярів Terminal - це запустити їх командним рядком open -n -a "Terminal"- зрозумійте, що це не чудовий спосіб запускати речі, які не призначені для запуску таким чином. Є спільні налаштування та файли плістів, які використовуються цими екземплярами, так що ви можете зіткнутися з проблемою.

Причина Fluid працює настільки добре, що кожен додаток - це окремий екземпляр браузера WebKit, з унікальним простором імен уподобань та без звичайних прикрас вікна браузера. Як мінімум, це важкий хак.

Ви можете скриптувати термінал за допомогою AppleScript, а потім зберегти AppleScript як додаток. Цей скрипт висуває новий екземпляр Terminal на передній план, а потім виконує в ньому команду ssh:

do shell script "open -n -a Terminal"
tell application "Terminal"
   set currentTab to do script ("ssh user@server;")
   # Additional commands can be sent using...
   # delay 6
   # do script ("do something remote") in currentTab
end tell

Введіть це в редактор AppleScript, налаштуйте його відповідно до ваших потреб, а потім виберіть File > Save...і Type:в розділі "Зберегти" виберіть, де це написано Application.

Це створить неподписаний .app файл, який ви можете розповсюдити як додаток для запуску sshсеансів. Якщо у вас є сертифікат розробника і ви хочете підписати код, .appщоб користувачі не отримували попередження про запуску ненадійного коду, скористайтеся File > Export...опцією меню, виберіть Applicationдля цього Typeі переконайтесь, що Code Sign:параметр у діалоговому вікні вказує на сертифікат розробника замість Don't Code Sign.

Краще підписати додаток з кодом, якщо ви збираєтеся надати його іншим користувачам.

Якщо це запустити, ви отримаєте абсолютно нові термінали, незалежні один від одного, що ви можете Cmd-Q вийти, не виходячи з інших екземплярів. Замініть Terminalв скрипті на, iTermякщо ви віддаєте перевагу для роботи в командному рядку.


Я думаю, я це вже пробував, і багатьом підходам подобається. .App, що створюється, є окремим, але насправді не містить сеанс ssh. Ще буде екземпляр запущеного або запущеного Terminal.app, і в ньому з'явиться ssh-сеанс.
Спарр

Єдиним іншим способом було б написати спеціальну програму в Xcode, яка використовує потоки для виведення сеансу ssh на задній план. Така річ виходить за межі цього веб-сайту. Ви також можете приховати вікно терміналу. Я додав інструкції з цього приводу.
Ян C.

Хтось сказав мені те саме про завершення сеансів браузера. Потім я показав їм Рідина.
Спарр

Запуск інструментів командного рядка та паркування сеансів Webkit у власних вікнах - це не те саме. Але мені подобається, що я підтверджуюсь неправильно, тому давайте подивимося, що придумає хтось інший.
Ян Ч.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.