还剩下什么

还剩下什么

客观的

我想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 并尝试一些相关的东西创建服务项目


那么,各位,我的错误在哪里?我还有希望吗?


常见问题解答

  1. 你能将你的操作系统切换为 Linux 吗?

    • 不,这毫无疑问。
  2. 为什么需要此虚拟机与系统一起启动?

    • 不幸的是,这个 Windows 7 主机是运行在 VM 上的应用程序的小型服务器。这台机器不是我的,而且这是他们给我的唯一部署选项。
  3. 为什么您没有在 Windows 主机内部署该应用程序?

    • 我没有运行 PHP 或者任何 .NET 东西,所以不行。

答案1

我和国家安全监测中心

在提示符下创建 NSSM 服务,例如:

  1. nssm/win64/nssm.exe install vbox

  2. 选择执行 VBoxHeadless.exe 如图:

    NSSM 安装服务

  3. 使用您的 Windows 帐户登录(这非常重要)

  4. 安装服务

对我有用。

答案2

我找不到一种机制来使用 VBoxManager 命令启动虚拟机作为服务,而无需任何人先登录。

我使用该工具使我的 Ubuntu Server VM 作为服务运行VBoxVmServicehttps://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+

相关内容