Skip to content

Instantly share code, notes, and snippets.

@sarcilav
Created February 25, 2010 19:39
Show Gist options
  • Select an option

  • Save sarcilav/314956 to your computer and use it in GitHub Desktop.

Select an option

Save sarcilav/314956 to your computer and use it in GitHub Desktop.
#!/bin/sh
#
# chkconfig: - 91 35
# description: Starts and stops vbox autostart VMs.
### BEGIN INIT INFO
# Provides: vbox
# Required-Start: $network $named $vboxdrv
# Required-Stop: $network $named
# Default-Start:
# Default-Stop: 0 1 2 3 4 5 6
# Short-Description: Autostart some Virtual Box VMs
# Description: Autostart some Virtual Box VMs that are mentioned in /etc/sysconfig/vbox file
### END INIT INFO
. /etc/rc.d/init.d/functions
MANAGE_CMD=VBoxManage
[ -r /etc/sysconfig/vbox ] && . /etc/sysconfig/vbox
prog=$"Virtual Box Machines"
start()
{
echo -n $"Starting $prog: "
RETVAL=0
for vbox_name in ${VBOX_AUTOSTART}
do
SERVS=1
echo -n "${vbox_name} "
daemon $MANAGE_CMD startvm "${vbox_name}" -type vrdp >/dev/null 2>&1
RETVAL=$?
[ "$RETVAL" -eq 0 ] || break
done
if [ -z "$SERVS" ]; then
echo -n "no virtual machines configured "
failure
RETVAL=6
else
if [ "$RETVAL" -eq 0 ]; then
success $"vbox startup"
touch /var/lock/subsys/vbox
else
failure $"vbox start"
fi
fi
echo
return "$RETVAL"
}
stop()
{
echo -n $"Shutting down $prog: "
for vbox_name in ${VBOX_AUTOSTART}
do
echo -n "${vbox_name} "
runuser root -c "$MANAGE_CMD -q controlvm "${vbox_name}" savestate" >/dev/null 2>&1
done
RETVAL=$?
[ "$RETVAL" -eq 0 ] && success $"vbox shutdown" || \
failure $"vbox shutdown"
echo
[ "$RETVAL" -eq 0 ] && rm -f /var/lock/subsys/vbox
return "$RETVAL"
}
status()
{
for vbox_name in ${VBOX_AUTOSTART}
do
echo -n "${vbox_name} "
$MANAGE_CMD showvminfo "${vbox_name}"|grep "^State:\s*.*$"
done
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|force-reload)
stop
start
;;
status)
status
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|status}" >&2
exit 3
;;
esac
:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment