I heard you like headless VMs on your Mac so I wrote this script for your launchd
s.
- Tested on Mac OS X 10.6.4 with VMware Fusion 2.0.5 and 3.1.1.
- A interactive user automatically logs into the system at startup. I had some issues trying to get this running without an interactive user logged in. I automatically log in for Airfoil Speakers anyway.
- Your virtual machines live in
/Virtual Machines
- Place the
vmdaemon
script into/Virtual Machines
and make it executable (sudo chmod 755 vmdaemon
) and owned by root (sudo chown root:wheel vmdaemon
). - Copy the template plist into
/Virtual Machines
. The plist should also bechmod 644
andchown root:wheel
. - For each VM you want to run headless, copy the
template
property list file and change the filename, label and 2nd program argument to match your VM name. - Symlink the plist into
/Library/LaunchDaemons
- Run
launchctl load -w $PLIST
to start the VM. - Use
launchctl unload -w $PLIST
to initiate a graceful shutdown of the VM. By default it will wait up to 5 minutes for the VM to shutdown. This can be configured inExitTimeOut
in the plist
If you try this out with your own setup, I'd like to hear how things go. Patches via gist forks are welcome.
- Jason Weathered (@jasoncodes)
I was able to get a vm machine to boot via fusion in headless mode at boot with the login prompt enabled. All you need to do is take out
while ! who | awk '{print $2}' | grep -q ^console$ do local WAIT=$((WAIT - 1)) if [ $WAIT -le 0 ] then echo Timeout waiting for console login. exit 1 fi sleep 1 done ##
Add
/Library/Application Support/Vmware Fusion/boot.sh —start
abovelocal WAIT=180
Also change
vmrun start "$VMX" nogui
tovmrun –T ws start “$VMX” nogui