3

Я работаю над некоторым кодированием, и у меня есть идея, которая должна работать, но я понятия не имею, как заставить это работать. Я использую Wolfram Mathematica на своем хост-компьютере Windows для запуска некоторого кода, но мне нужно экспортировать файл в программу на базе Linux, которую я запускаю на виртуальной машине Ubuntu Virtualbox. На данный момент, когда файл экспортируется, мне нужно перейти и щелкнуть по нему, чтобы он запустился.

Хотя это не слишком много работы, я хотел бы автоматизировать ее, чтобы Mathematica могла вызывать мою другую программу, и мне не нужно ничего нажимать. Я сделал все возможное, чтобы посмотреть в Интернете за помощью, но, честно говоря, это в основном над моей головой (я инженер-строитель, не очень разбираюсь в компьютерах).

Вот что у меня так далеко:

C:\Program Files\Oracle\VirtualBox\VBoxManage guestcontrol "Ubuntu" execute --username (myname) --password (mypassword) --verbose --wait-exit --wait-stdout --image "/home/(myname)/Desktop/oof2-2.1.11/oof2"

Он сообщает мне VERR_ACCESS_DENIED и закрывает гостевую сессию.

Когда я запускаю свою программу в Ubuntu, все, что мне нужно сделать, это набрать oof2 в окне терминала, и она запускается, но как мне заставить это сделать это через командную строку? Я прочитал руководство по гостевому управлению для VirtualBox и не увидел ничего, что я мог бы понять, что имеет прямое отношение. Любая помощь приветствуется.

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

1 ответ1

1

Вот справка от команды vboxmanage :

 guestcontrol              <uuid|vmname>

                             exec[ute]
                             --image <path to program> --username <name>
                             [--passwordfile <file> | --password <password>]
                             [--domain <domain>] [--verbose] [--timeout <msec>]
                             [--environment "<NAME>=<VALUE> [<NAME>=<VALUE>]"]
                             [--wait-exit] [--wait-stdout] [--wait-stderr]
                             [--dos2unix] [--unix2dos]
                             [-- [<argument1>] ... [<argumentN>]]

Таким образом, полная команда должна быть:

C:\Program Files\Oracle\VirtualBox\VBoxManage guestcontrol "Ubuntu" execute --username (myname) --password (mypassword) --verbose --wait-exit --wait-stdout --image "/usr/local/bin/oof2" -- --text

Обратите внимание на дополнительные -- Все, что после этого будет передано в качестве аргументов процессу.


Настройка SSH

  1. Установите PuTTY на хост-машине. (Прямая ссылка на установщик)
  2. Откройте терминал в виртуальной машине и введите ip -4 addr . Найдите свой IP-адрес, он будет рядом со словом "inet" в разделе "eth0" (вероятно, будет 10.0.2.XXX)
  3. В окне виртуальной машины откройте меню "Устройство" и выберите "Сеть" -> "Настройки сети". Оттуда выберите "Переадресация портов"
  4. Добавьте правило, Host Port = 2222, Guest IP =, Guest Port = 22. Нажмите OK во всех диалоговых окнах.
  5. Запустите putty, используйте localhost качестве имени хоста и 2222 в качестве порта. Нажмите "Открыть"

Если это работает, и вы получаете терминал, теперь вы можете использовать эту команду для запуска вашего приложения:

C:\Program Files (x86)\PuTTY\plink.exe -P 2222 -pw mypassword myname@localhost  "/usr/local/bin/oof2" --text

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .