DevOps

From Han Wiki
Jump to navigation Jump to search

Development environment

Docker notes

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

Base reference: Stackoverflow


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


optional 1: create a shortcut

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


optional 2: run it without logging on to the system (similar to a system service)

  1. Open Task Scheduler
  2. Under General tab, in security options, choose Run whether user is logged on or not
  3. Check Run with highest privileges
  4. Under Triggers tab, create a trigger and choose "At startup" for Begin the task. Make sure Enabled is checked
  5. Under Actions tab, create an action and choose "Start a program" for Action. Program/script: should be "C:\Windows\System32\wscript.exe" and Add arguments (optional): is set to "C:\myscripts\vm.run.vbs"