quinta-feira, 17 de outubro de 2013

VirtualBox - Iniciando VMs automaticamente no CentOS/RHEL sem precisar de X rodando

 
   Como estava sem muitas ideias e precisava fazer isso funcionar, segue um 'service' do CentOS/RHEL que faz VMs iniciarem e pararem(salvar status) sem tu precisares do X Window aberto.


  IMPORTANTE: O array 'vms' é responsável pelas VMs que queres gerenciar, se tiver mais de 1, adicione-as no array e pronto.


#!/bin/sh
#
# chkconfig: - 99 99
# description: Starts and stops VMs
#       #
# pidfile: /var/run/vbox-vms.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 1

vms=( "CC-Linux-testvm" )

start() {
        kind="VMs"
        numvms=${#vms[*]}
        count=0

echo -n $"Starting $kind services:"

       while [ $count -lt $numvms ]
        do
/usr/bin/VBoxHeadless -startvm ${vms[$i]} >> /var/log/vbox-jobs/${vms[$i]}.log 2>&1 &
                RETVAL=$(($RETVAL + $?))
                (( count=count+1 ))
        done

echo " "

        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/vbox-vms || RETVAL=1
        return $RETVAL

}

stop() {
        echo
kind="VMs"
numvms=${#vms[*]}
count=0

echo -n $"Shutting down $kind services: "

while [ $count -lt $numvms ]
do
/usr/bin/vboxmanage controlvm ${vms[$i]} savestate
                RETVAL=$(($RETVAL + $?))
(( count=count+1 ))
done

        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/vbox-vms
        echo ""
        return $RETVAL

}

restart() {
stop
start
}

case "$1" in
  start)
  start
;;
  stop)
  stop
;;
  restart)
  restart
;;
  *)
echo $"Usage: $0 {start|stop|restart}"
exit 2
esac

exit $?

Nenhum comentário:

Postar um comentário