Bash Script – запуск удаленного X-перенаправленного приложения

Возможно, я использую неправильные ключевые слова, чтобы найти ответ на это требование.

У меня есть GUI, установленный в удаленной Linux-системе, которая использует удаленное подключение к ней и инициирует приложение с перенаправлением X, например:

ssh -Y user.known@aServer.lan cd /home/user.known/TheAppDir/ sh ./ApplicationCommand 

с приведенным выше, у меня есть GUI, отображаемый на моем локальном Linux- сервере от aServer

Мой вопрос: как я могу написать bash на моем локальном Linux, который инициировал бы процесс выше за один раз? В идеале я хочу запустить скрипт bash, например:

 aServer.ApplicationCommand 

И у меня есть GUI, работающий локально в результате?

One Solution collect form web for “Bash Script – запуск удаленного X-перенаправленного приложения”

Если вы создаете файл aServer.ApplicationCommand (не забудьте chmod + x сделать его исполняемым) и поместите в него:

 #!/bin/bash ssh -Y user.known@aServer.lan "cd /home/user.known/TheAppDir/ ; sh ./ApplicationCommand" 

Это должно сработать. Вам все равно будет предложено ввести пароль, если вы не настроили ssh-ключи.

объяснение

SSH может использоваться строго для выполнения команды, а не для возврата сеанса, поместив команду после команды SSH. По существу при этом он открывает сеанс, запускает предоставленную команду и затем закрывает ее.

Поскольку вы хотите, чтобы выполнялось несколько команд, мы просто размещаем точку с запятой между ними, чтобы отделить их, и заключить в цитаты, чтобы она оставалась аргументом для команды SSH.

БОНУС

Переименуйте сценарий на aServer и измените сценарий на:

 #!/bin/bash ssh -Y user.known@aServer.lan "cd /home/user.known/TheAppDir/ ; sh ./$1" 

и вызывать его с помощью aServer ApplicationCommand , преимущество в этом состоит в том, если у вас есть несколько сценариев в TheAppDir которые вы хотите назвать, просто измените аргумент.

Я думаю, вы еще можете захватить $? чтобы убедиться, что сценарий выполнен правильно и создать сообщение об ошибке, если файл не был найден, но вы должны проверить это.

  • Импорт параметров переменных среды с другого сервера
  • В Bash, если и если то же самое?
  • Изменение разрешений файла при использовании команды sftp в сценарии оболочки
  • cat STDIN не будет работать дважды в скрипте
  • Как создать сценарий оболочки для обработки команд типа ls -l / somedir
  • Сценарий для перемещения одного типа файлов и создания подпапки, если он существует?
  • sh + как использовать массив в sh-скрипте для печати всех значений в массиве
  • Передача подстановочного символа * в скрипт (bash?)
  • Баш для пользователя. Лучший в том же или отдельном скрипте?
  • Накопительное время CPU (столбец времени в команде o / p команды ps aux)
  • Разделить видеофайл на части с помощью ffmpeg
  • Interesting Posts

    Как создать фильтр Procmail, который проверяет оба заголовка и тело

    Как сделать текст справки по программам автоматически транслируется через меньше?

    Проверка типа NAT

    Мониторинг того, какая программа вызывает исполняемый файл

    Добавление / удаление некоторых вкладок и разрывов строк в HTML-коде с помощью sed

    Как определить наличие батареи?

    Как проверить man-страницы для того, что делает один параметр команды?

    добавление списка пользователей в несколько групп

    Почему страницы-пользователи Unix используют двойные обратные ссылки вместо двойных кавычек?

    Удаление специальных символов в текстовом файле

    Проблема с Xauthority

    При каждом обновлении Firefox сбрасывает все настройки браузера по умолчанию. Зачем?

    Почему эта команда awk не выполняет полное внешнее соединение?

    Сценарий оболочки для удаления нескольких файлов

    Что происходит, когда сетевой интерфейс «воспитывается» с ifconfig?

    Linux и Unix - лучшая ОС в мире.