剩下什麼

剩下什麼

客觀的

我想VBoxManage startvm MyVM --type headless在啟動系統上執行這個指令,就像服務(postgres、apache)一樣。

我嘗試過的

1.我嘗試創建一個服務使用SC命令

我在互聯網上發現這可能是解決方案,所以我嘗試了所有這些版本:

  • 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 並嘗試相關的內容建立一個服務項目


那麼各位,我的錯誤在哪裡?我還有希望嗎?


常見問題解答

  1. 你能把你的作業系統切換到linux嗎?

    • 不,這是毫無疑問的。
  2. 為什麼需要這個虛擬機器隨系統一起啟動?

    • 不幸的是,這個 Windows 7 主機是一個小型伺服器,用於在 VM 上運行的應用程式。這台機器不是我的,這是他們給我部署的唯一選擇。
  3. 為什麼不在 Windows 主機內部署應用程式?

    • 我沒有運行 PHP 或任何 .NET 東西,所以沒有。

答案1

我與國家安全局

在提示字元中建立 NSSM 服務,如下所示:

  1. nssm/win64/nssm.exe install vbox

  2. 選擇 exec 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+

相關內容