客觀的
我想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 並嘗試相關的內容建立一個服務項目。
那麼各位,我的錯誤在哪裡?我還有希望嗎?
常見問題解答
你能把你的作業系統切換到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+