Script 1 to start a virtualbox (vbox_start_vm)
Starts and sleeps x number of seconds, but doesn't start it if it's already running!
#!/bin/bash if [ -z $1 ] ; then echo "SERVER Name is Missing... the number is 42." echo "usage vbox_single_start " exit 1 fi if /usr/bin/VBoxManage -q showvminfo $1 | grep -i running ; then echo VM Guest $1 is already powered on! exit 1 else echo Starting $1 /usr/bin/VBoxManage startvm $1 --type vrdp if [ $2 ] ; then sleep $2 fi fi exit 0
#!/bin/bash MAX_WAIT_TIME=300 # max seconds to wait before doing poweroff (force) function wait_until_machine_shutdown_else_terminate { if /usr/bin/VBoxManage -q list runningvms | grep -i $1 ; then #echo "sleeping 10 seconds" sleep 10 let MAX_WAIT_TIME=MAX_WAIT_TIME-10 if [ $MAX_WAIT_TIME -lt 0 ] ; then echo "Had to force the power on the server... Sorry about that!" /usr/bin/VBoxManage controlvm $1 poweroff sleep 10 else if [ $MAX_WAIT_TIME -lt 200 ] ; then #try to do another acpipowerbutton /usr/bin/VBoxManage controlvm $1 acpipowerbutton fi wait_until_machine_shutdown_else_terminate $1 fi fi } #ensure that the server name is entered if [ -z $1 ] ; then echo "SERVER Name is Missing... the number is 42." echo "usage vbox_stop_vm " exit 1 fi if /usr/bin/VBoxManage -q showvminfo $1 | grep -i running ; then echo VM Guest $1 is powered on! Will send ACPI shutdown. /usr/bin/VBoxManage controlvm $1 acpipowerbutton # if parameter for sleep is provided, do here if [ $2 ] ; then sleep $2 fi # wait until it's been shutdown! wait_until_machine_shutdown_else_terminate $1 else echo Server $1 is not running! exit 1 fi exit 0
#! /bin/sh # some errors with networking, so need to restart at end of init sequence #NOT NEEDED BRIDGE WORKS?!?!?!?! case "$1" in start) echo -n "Starting all the VirtualBox VMS" /etc/init.d/vbox_start_vm "Windows2008_DC" 60 /etc/init.d/vbox_start_vm "Windows2008_Test" 60 /etc/init.d/vbox_start_vm "Ubuntu_Web_Server" 15 /etc/init.d/vbox_start_vm "Ubuntu_DB_Server" 15 /etc/init.d/vbox_start_vm "Ubuntu_Testing_Server" 15 echo "Done"; ;; stop) echo -n "Stopping all the VirtualBox VMS" /etc/init.d/vbox_stop_vm "Windows2008_DC" /etc/init.d/vbox_stop_vm "Windows2008_Test" /etc/init.d/vbox_stop_vm "Ubuntu_Web_Server" /etc/init.d/vbox_stop_vm "Ubuntu_DB_Server" /etc/init.d/vbox_stop_vm "Ubuntu_Testing_Server" echo "Done"; ;; *) echo "Usage: /etc/init.d/vbox_vm_startup {start|stop}" exit 1 ;; esac exit 0