客观的
我想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 命令添加到路径
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 主机是运行在 VM 上的应用程序的小型服务器。这台机器不是我的,而且这是他们给我的唯一部署选项。
为什么您没有在 Windows 主机内部署该应用程序?
- 我没有运行 PHP 或者任何 .NET 东西,所以不行。
答案1
答案2
我找不到一种机制来使用 VBoxManager 命令启动虚拟机作为服务,而无需任何人先登录。
我使用该工具使我的 Ubuntu Server VM 作为服务运行VBoxVmService
:
https://github.com/onlyfang/VBoxVmService
简要说明:VBoxVmService 是一个 Windows 应用程序,允许您从本机 Windows 服务实体内运行 Oracle 的 VirtualBox VM。
我需要这个的主要原因是,无需任何人登录即可启动虚拟机。我的是开发人员工作站,它会重新启动以进行更新,我有时会忘记启动虚拟机,直到有人提醒我。
工作原理如下:
首先,手动确保所需的虚拟机启动并正常运行,没有错误。否则,通过日志进行调试会很困难。
安装后,
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+