Цель
Я хочу запустить эту команду VBoxManage startvm MyVM --type headless
при загрузке системы, как это делает служба (postgres, apache).
Что я пробовал
1. Я пытался создатьуслугас использованиемподкожнокоманда
Я нашел в интернете, что это может быть решением, поэтому я перепробовал все эти версии:
sc create "vboxMyVMService" binPath= "C:\Progman Files\Oracle\VirtualBox\VBoxManage.exe startvm MyVM --type headless"
sc create "vboxMyVMService" binPath= "C:\Progman Files\Oracle\VirtualBox\VBoxManage startvm MyVM --type headless"
Ничего не вышло, поэтому я попытался отключить подробный вывод команды.
sc create "vboxMyVMService" binPath= "C:\Progman Files\Oracle\VirtualBox\VBoxManage.exe startvm MyVM --type headless > NUL"
sc create "vboxMyVMService" binPath= "C:\Progman Files\Oracle\VirtualBox\VBoxManage startvm MyVM --type headless"
Все еще нет результатов. Вся эта версия вернула мне1053ошибка. Поэтому последним вызовом было добавить команду Virtualbox в Path
sc create "vboxMyVMService" binPath= "VBoxManage.exe startvm MyVM --type headless"
sc create "vboxMyVMService" binPath= "VBoxManage startvm MyVM --type headless"
подавление вывода
sc create "vboxMyVMService" binPath= "VBoxManage.exe startvm MyVM --type headless > NUL"
sc create "vboxMyVMService" binPath= "VBoxManage startvm MyVM --type headless > NUL"
Не всегда положительный результат1053ошибка.
2. Назначьте сценарии запуска компьютера
Я следил за этимруководствос моей последней надеждой, но безуспешно.
Что осталось
Я думаю о том, чтобы скачать Visual Studio и попробовать что-то связанное ссоздать проект обслуживания.
Так, ребята, где моя ошибка? Есть ли у меня надежда?
Часто задаваемые вопросы
Можно ли переключить ОС на Linux?
- Нет. Это исключено.
Зачем вам нужна эта виртуальная машина для запуска вместе с системой?
- К сожалению, этот хост Windows 7 — небольшой сервер для приложения, работающего на виртуальной машине. Машина не моя, и это единственный вариант, который они мне дали для развертывания.
Почему вы не развертываете приложение внутри хоста Windows?
- Я не использую PHP или что-то вроде .NET, так что нет.
решение1
Я бегу сНССМ.
Создайте службу NSSM в командной строке, например:
nssm/win64/nssm.exe install vbox
Выберите exec VBoxHeadless.exe, как на изображении:
Используйте свою учетную запись Windows для входа в систему (это очень важно)
Установить службу
Работает для меня.
решение2
Мне не удалось найти механизм запуска виртуальной машины как службы с помощью команды VBoxManager без необходимости предварительного входа кого-либо в систему.
Я включил работу виртуальной машины Ubuntu Server в качестве службы с помощью VBoxVmService
инструмента:
https://github.com/onlyfang/VBoxVmService
Краткое описание: VBoxVmService — это приложение Windows, позволяющее запускать виртуальные машины Oracle VirtualBox из собственной службы Windows.
Основная причина, по которой мне это потребовалось, — запуск виртуальной машины без необходимости входа в систему. Моя рабочая станция разработчика перезапускается для обновлений, и я иногда забываю запустить виртуальную машину, пока кто-нибудь не ткнет меня.
Вот как это работает:
Во-первых, вручную убедитесь, что требуемая виртуальная машина запускается и работает без ошибок. Иначе будет сложно отлаживать, копаясь в журналах.
После установки
VMBoxService
он исполняется как служба Windows.Отредактируйте INI-файл конфигурации (см.здесьдля полного документированного образца)
Перезагрузите компьютер или просто запустите
VMBoxService's
установленную службу Windows.Ниже приведен пример INI.
[Settings] VBOX_USER_HOME=C:\Users\YOUR_NAME_HERE\.VirtualBox PauseShutdown=8000 [Vm0] VmName=ubuntu-server ShutdownMethod=savestate AutoStart=yes
ОБНОВЛЕНИЕ: Поддерживает только Win 10+