Назад | Перейти на главную страницу

Vboxheadless без командной строки (VirtualBox)

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

Вот что я пробовал:

Из командной строки:

запустите vboxheadless -s "Сервер Ubuntu"

В C #:

        ProcessStartInfo info = new ProcessStartInfo
        {
            UseShellExecute = false,
            RedirectStandardOutput = true,
            ErrorDialog = false,
            WindowStyle = ProcessWindowStyle.Hidden,
            CreateNoWindow = true,
            FileName = "C:/program files/sun/virtualbox/vboxheadless",
            Arguments = "-s \"Ubuntu Server\""
        };

        Process p = new Process();
        p.StartInfo = info;
        p.Start();

        String output = p.StandardOutput.ReadToEnd(); //BLOCKS! (output stream isnt closed)

Я хочу получить вывод, чтобы узнать, был ли запуск сервера успешным. Однако кажется, что порожденное окно никогда не закрывает свой выходной поток.

Также стоит упомянуть, что я пробовал использовать vboxmanage startvm "Ubuntu Server" --type = vrdp. Я могу определить, правильно ли запустился сервер, используя это. Но он показывает новое окно командной строки для только что запущенного гостя VirtualBox.

На случай, если кто-то снова столкнется с этой проблемой, вот что я делаю для этого ...

start-process "vboxheadless" "-s ubuntu" -WindowStyle Hidden

либо поместите его в сценарий PowerShell, либо введите в окно консоли PowerShell. Вы можете создать ярлык или псевдоним и т. Д.

Мне недавно удалось это сделать Вот. Решение не очень хорошее: мне не нравится разработка под Windows ... но работает, что еще можно пожелать? :))