DevOps
Development environment
VirtualBox
Running a VM headless (in the background, like a service) or without GUI
Last tested on Windows 10 Home x64 (v1511, build 10586.318) + VirtualBox v5.0.20 r106931
given:
- the name of the virtual machine is virtualmachine
instruction:
We first create a batch file that runs the VM. Create a file named vm-run.bat with the following content.
cd "c:\Program Files\Oracle\VirtualBox\"
VBoxHeadless -s virtualmachine -v on
We can just use the batch file above, however, it opens up the shell to run the batch file. We use Windows-based script host using VBS to run the file. Create a file named vm-run.vbs with the following content.
set WshShell = WScript.CreateObject("WScript.Shell")
obj = WshShell.Run("vm-run.bat",0)
set WshShell = Nothing
Use the following line to run the VM in the background: wscript vm-run.vbs
</source>
optional:
You can optionally create a shortcut on your Desktop with the following value in Target:
C:\Windows\System32\wscript.exe C:\Files\tools\vm.run.vbs
To check if it's running, go to Task Manager (taskmgr using CLI ÿ + r) and check Details tab. There should be 3 instances of VBoxHeadless.exe processes running. Another way to check in CLI is to execute this line:
C:\Users\JMoe>tasklist /FI "IMAGENAME eq VBoxHeadless.exe"
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
VBoxHeadless.exe 7104 Console 1 2,444 K
VBoxHeadless.exe 7112 Console 1 4,164 K
VBoxHeadless.exe 7136 Console 1 83,596 K